I’m currently facing an unusual issue. I’ve deployed ChirpStack v4 on Kubernetes, and while ChirpStack itself is able to communicate with Mosquitto without any problems, the Gateway Bridge keeps throwing the following error. I can’t identify any difference in how both components are connecting to Mosquitto.
Image for gateway bridge, mosquitto and chirpstack used -
chirpstack:4.13
chirpstack-gateway-bridge:4.0
eclipse-mosquitto:2.0.11
from chripstack core -
[integration.mqtt]
server = “tcp://chirpstack-v4-mosquitto.namepsace-dev.svc:1883”
json = true
username = “”
password = “”
from gateway bridge
[integration.mqtt.auth]
type = “generic”
# Generic MQTT authentication.
[integration.mqtt.auth.generic]
# MQTT servers.
#
# Configure one or multiple MQTT server to connect to. Each item must be in
# the following format: scheme://host:port where scheme is tcp, ssl or ws.
servers = [
“tcp://chirpstack-v4-mosquitto.201299-dev.svc:1883”,
]
username=“”
password=“”
I am just following this link
https://www.chirpstack.io/docs/chirpstack-gateway-bridge/install/cisco.html
Keep getting below error
time=“2025-08-22T17:43:25.920274626Z” level=error msg=“[client] Failed to connect to a broker” module=mqtt
time=“2025-08-22T17:43:25.920502759Z” level=error msg=“integration/mqtt: connection error” error=“network Error : dial tcp 172.25.33.165:1883: connect: connection refused”
time=“2025-08-22T17:43:27.921332824Z” level=warning msg=“[client] status is already disconnected” module=mqtt
ti
What’s the difference between mosquitto.namepsace-dev and mosquitto.201299-dev.svc? In my head those should be the same address?
I just resolved what might be the silliest mistake I’ve made—a trailing space in the config name within my deployment file. That tiny typo caused a lot of confusion!
Now I’m stuck on the next (more interesting) issue.
I can see gateway messages arriving at the Gateway Bridge, for example:
time="2025-08-22T21:51:32.622939646Z" level=info msg="backend/basicstation: proprietary uplink frame received" gateway_id=0000000000000003 uplink_id=1810322666
time="2025-08-22T21:51:32.623240717Z" level=info msg="integration/mqtt: publishing event" event=up qos=0 topic=eu868/gateway/0000000000000003/event/up uplink_id=1810322666
However, these messages are not appearing in ChirpStack. I do see ChirpStack subscribing to the application command topic, but there are no errors or warnings in the ChirpStack logs:
chirpstack::integration::mqtt: Subscribing to command topic = application/+/device/+/command/+
It seems ChirpStack isn’t subscribing to the gateway event topics, and uplink messages aren’t being processed.
I’m following the configuration from this link:
region_eu868.toml
Any ideas on what might be missing or misconfigured?
If you subscribe to the MQTT broker using topic eu868/gateway/0000000000000003/# do you see the gateway bridge messages arriving there?
Have you configured the [regions.gateway.backend.mqtt] server= line in your eu868.toml to your MQTT broker?
I had two separate TOML files:
chirpstack.toml was mounted at /etc/chirpstack
region_eu868.toml was mounted at /etc/chirpstack/regions
It turns out that ChirpStack v4 requires both TOML files to be in the same directory—specifically, the main config directory (/etc/chirpstack). Once I changed the mount path for the region file to match the main config path, everything started working end-to-end.
It seems ChirpStack v4 no longer supports WebSockets for real-time updates. In v3, the device and gateway status would refresh automatically thanks to WebSocket support. But in v4, the status doesn’t update live—you need to manually refresh the device or gateway page to see the latest status.
1 Like