Gateway rak2287 never seen

Hi everyone. I installed chirpstack-docker on RPI4 and I have a concentrator rak2287 on RPI3. I configurated both RPI but in the Chirpstack V4 interface the gateway “never seen” but I have activity for MQTT. What is the problem?

You need to configure your MQTT topic prefix in your gateway bridge/mqtt forwarder. It should be your region like eu868 or us915_0.

I did but I have a new error: error chirpstack::gateway::backend::mqtt: processing gateway event error: failed to decode protobuf message: gatewaystats.rx_packets_per_modulation: invalid wire type: startgroup (expected lengthdelimited)

Strange, you could try setting your gateway bridge / MQTT forwarder to send JSON instead of protobuf to see if that solves your issue.

If I change in sudo gateway-config the gateway bridge (127.0.0.1) for my IP. The gateway is online. Howover, now I would like to use the gateway bridge because my IP isn’t static. I know that is possible because with the gateway bridge there is activity for MQTT. Any idea how do it?

This error indicates that the field rx_packets_per_modulation within the gatewaystats message has an unexpected encoding.

  • Expected: A “length-delimited” encoding (which is typical for lists or repeated fields).
  • Received: A “startgroup” encoding, which is deprecated in modern Protobuf versions.

Are you sure your gateway bridge is up to date? It’s sending deprecated protobuf. If that’s not the issue, again I think you should try setting your gateway bridge to send JSON (you can do this in your chirpstack-gateway-bridge.toml) and see if that fixes it or if the problem lies elsewhere.

As an aside I am a little confused by your phrasing:

You need to use a gateway bridge / MQTT forwarder, so what do you mean by the fact that you only want to use it now? Do you mean before you were using the gateway bridge on the server and now you want to change to a gateway bridge you installed on the gateway itself?

Ok, I try to explain with all details. If I use as server IP 127.0.0.1 it isn’t possible view online to gw
Screenshot from 2025-02-01 14-31-05.

If I configure the MQTT topic prefix on the gw (in my case au915_1) I have the error:


But, if I don’t configure the topic prefix I haven’t error.

On the other hand, If change the server IP to 192.168.1.5 (it’s the new IP of my LNS),with or witouht the topic profix, the gw is online.
Screenshot from 2025-02-01 14-31-19

For all this, my gateway bridge install on my docker has the topic profix. I want understand what happened? Because, I’m sure that is possible user the server IP 127.0.0.1 because there is activity on MQTT. For example, I think that is possible configurate the LNS as MQTT, replace the UDP. Sorry if this doesn’t make sense.

Okay I think I understand, please confirm that this is correct:

  • You have an RPI 3 you want to use as a gateway. You manually installed the components (concentratord, UDP forwarder, gateway bridge) onto the RPI3 instead of using the Chirpstack Gateway OS? (It doesn’t look like you’re using it from the screenshots)
  • You have an RPI4 with Chirpstack docker (including gateway bridge) installed.
  • When you try to point the UDP forwarder (on the gateway) to your gateway bridge (on the gateway) you get the error in Chirpstack server.
  • When your try to point your UDP forwarder (on the gateway) to the gateway bridge (on the server), everything works as expected.
  • You are trying to eliminate UDP over the air so you want to use the gateway bridge on the gateway and send MQTT directly to the MQTT broker on your server (on port 1883).

I’m not sure what is causing this but a few suggestions / info that might help you:

  • The reason you only see the error when the topic prefix is configured, is because chirpstack only listens to the topics starting with the topic prefix. So without the topic prefix Chirpstack doesn’t receive the message and thus doesn’t trigger an error.

  • What version is the gateway bridge on your gateway?

  • Have you considered using Chirpstack gateway OS?

  • As I’ve said previously, try setting the gateway bridge on your gateway to use JSON, this way you can look at the packet easier and see if there is anything wrong with it when it is posted to the MQTT broker, and determine if the error is strictly with protobuf.

You definitely can configure it to send MQTT/TCP over the air, this is the setup I use with the gateway bridge on each of my gateways, I don’t even have a gateway bridge on my Chirpstack server.

Yes, it’s correct!

What version of Chirpstack do you use? 3 or 4?

I’m going to keep trying. I won’t give up that easily!

Glad to hear it :slightly_smiling_face:

I looked at the guide you linked and saw this note:

The default IP address is 127.0.0.1 , which means you will be using the Built-in LoRa Server. If you want to use an independent LoRa Server running on another device or a cloud-based LoRa Server, you need to set it to the corresponding IP address.

It looks like using 127.0.0.1 in gateway-config passes the traffic directly to a Chirpstack instance on the gateway. So I don’t understand how you are getting MQTT traffic on your RPI4 using that address.

Did you reconfigure the gateway bridge on your RPI3 to point to your RPI4 instead of the local instance?

You should use v4 if ever possible, it has many improvements over v3.

With that being said, the default Chirpstack instance installed onto your rak software is a V3 instance, therefore it has a V3 gateway bridge. This is likely the issue. If you look at the breaking changes between V3 and V4 your gateway bridge has to be v3.14.0+ to be compatible with Chirpstack V4.

So in my eyes you have a few options to get the MQTT over the air working:

  1. Update the gateway bridge on your RPI3 to 3.14.0+
  2. Install a new V4 gateway bridge on your RPI3
  3. Use Chirpstack Gateway OS on your RPI3, which comes installed with a V4 gateway bridge.
  4. Use Chirpstack V3 on your RPI4 (I would not recommend this)