Gateway stays "OFFLINE" in UI despite stats received over MQTT

Viewed 11

Hello,

I am currently integrating a Milesight UG65 gateway with ChirpStack v4, and I have encountered an issue I can’t fully resolve.

The problem:
The gateway remains OFFLINE in the ChirpStack UI, even though the server clearly receives gateway stats over MQTT.
Uplinks, event/up and state/up do NOT appear, and the gateway never transitions to “online” in the web UI.

What we know:

MQTT stats are received successfully:
topic=eu868/gateway//event/stats
chirpstack::storage::metrics: Metrics saved ...

ChirpStack processes stats correctly (HOUR/DAY/MONTH).

The gateway ID matches.

Port 3001 does not open, even when configuring the backend in chirpstack.toml.

Our chirpstack.toml (gateway backend part):
[network_server.gateway.backend]
type = "basic_station"

[network_server.gateway.backend.basic_station]
bind = "0.0.0.0:3001"
tls_cert = ""
tls_key = ""

After restarting ChirpStack:
sudo ss -tulpn | grep 3001

no output

So it seems that the Basic Station LNS WebSocket server does not start, even though it is configured.

Questions:

In ChirpStack v4, is the network_server.gateway.backend configuration still valid for enabling Basic Station (port 3001), or has this been moved elsewhere (e.g., region configuration files)?

How should we correctly enable the Basic Station backend in v4 so that:

the LNS WebSocket server starts,

the gateway can send event/up and join frames,

and the UI begins showing the gateway as ONLINE?

Is it expected behavior that MQTT stats alone do not switch the gateway to ONLINE?

Should Milesight UG65 forwarder use Semtech UDP instead of Basic Station with v4?

Any guidance or updated best practices for v4 gateway backend configuration would be greatly appreciated.
We're trying to understand the correct and recommended approach for gateway connectivity in ChirpStack v4.

Thank you!

1 Answers

Our chirpstack.toml (gateway backend part):

[network_server.gateway.backend]
type = "basic_station"

[network_server.gateway.backend.basic_station]
bind = "0.0.0.0:3001"
tls_cert = ""
tls_key = ""

I'm not sure where you got that configuration from, but it does not exist. Please see: https://www.chirpstack.io/docs/chirpstack/configuration.html.

There is no Basics Station related configuration that you need to do in ChirpStack itself. High-level this is how the architecture looks like:

[Basics Station GW] <--> [ChirpStack Gateway Bridge] <--> [Mosquitto] <--> [ChirpStack]

The only component that will contain Basics Station related config. will be the ChirpStack Gateway Bridge.