HAL error on multicast: Convert downlink protobuf to HAL struct error

Viewed 9

Hi Chirpstack community,
I already posted this question on the old forum, however due to the move to new system it didn't receive any answer.

In the meantime, I moved from RAK2287 to Semtech CoreCell, but the issue remains the same. Here is the full description from the previous post ( https://forum.chirpstack.io/t/rak2287-multicast-hal-error/25479 ):

I’m currently trying to setup Chirpstack on my Raspberry Pi 4 and RAK2287 as concentrator (connected through a PiHAT on SPI). I want to test the FUOTA capability, that was working for me in the past on a Raspbian and FUOTA as the experimental feature. Now I wanted to try the Chirpstack OS, I setup a clean install on an SD card, even established a basic communication with an end node.

However when it comes to FUOTA, the campaign is set well, node is ready to receive in Class C, fragments are enqueued using the multicast group, but they never reach the gateway. Digging into the logs I see:

Tue Sep  2 11:23:31 2025 user.info chirpstack-mqtt-forwarder[3122]: Sending downlink frame, downlink_id: 2187393511
Tue Sep  2 11:23:31 2025 user.err chirpstack-concentratord-sx1302[4223]: Convert downlink protobuf to HAL struct error, downlink_id: 2187393511, error: gps_ref_valid = false
Tue Sep  2 11:23:31 2025 user.err chirpstack-concentratord-sx1302[4223]: Handle downlink error, error: gps_ref_valid = false
Tue Sep  2 11:23:31 2025 user.info chirpstack-mqtt-forwarder[3122]: Received ack, items: [], downlink_id: 2187393511

Since this error I tried changing the configuration, enabling/disabling the GNSS, I even tried older versions of the Chirpstack OS, but the error is the same. It is not strictly related to FUOTA, just a simple multicast shows the same problem (message enqueued, but never sent, raising the errors). Googling this error didn’t help either as there are only few links that are unrelated to my issue, so I decided to post it here.

Did I miss some configuration steps in the concentrator? Or where the issue could be?

Thanks in advance for any help.
Regards,
FilipS

1 Answers

Hi,
thanks for your answer.
I think it was 'GPS time' setting, but when I tried now with both, the Delay was even succesful and I start receiving fragments.
Before, the 'Delay' was not working at all, but now I think it is because the particular end node I used was registered with another provider, so it blocked the responses from Chirpstack. This error made me move to 'GPS time' setting which produced the error I posted in my last message. At least, there is one way for me to perform the FUOTA.

Now, for the 'GPS time', that still shows the same error. All the parameters are the same as in 'Delay' - a class C FUOTA, multicast @868.1MHz, DR2. I upload the payload and let it calculate the timeout and fragment sizes. Payload shouldn't matter, but for testing I have now a dummy 3kB binary. Here is the log from System log (still the same error):

Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received ack, items: [], downlink_id: 3361138700
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending ack event, downlink_id: 0, topic: eu868/gateway/0016c001ff19ee50/event/ack
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received message, topic: eu868/gateway/0016c001ff19ee50/command/down, qos: AtMostOnce
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Convert downlink protobuf to HAL struct error, downlink_id: 3183229829, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Handle downlink error, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received downlink command, downlink_id: 174513180, topic: eu868/gateway/0016c001ff19ee50/command/down
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending downlink frame, downlink_id: 174513180
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received ack, items: [], downlink_id: 3183229829
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending ack event, downlink_id: 0, topic: eu868/gateway/0016c001ff19ee50/event/ack
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received message, topic: eu868/gateway/0016c001ff19ee50/command/down, qos: AtMostOnce
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Convert downlink protobuf to HAL struct error, downlink_id: 1268624182, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received downlink command, downlink_id: 1086700227, topic: eu868/gateway/0016c001ff19ee50/command/down
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Handle downlink error, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending downlink frame, downlink_id: 1086700227
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received ack, items: [], downlink_id: 1268624182
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending ack event, downlink_id: 0, topic: eu868/gateway/0016c001ff19ee50/event/ack
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received message, topic: eu868/gateway/0016c001ff19ee50/command/down, qos: AtMostOnce
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Convert downlink protobuf to HAL struct error, downlink_id: 1027577991, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received downlink command, downlink_id: 1117403186, topic: eu868/gateway/0016c001ff19ee50/command/down
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Handle downlink error, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending downlink frame, downlink_id: 1117403186
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received ack, items: [], downlink_id: 1027577991
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending ack event, downlink_id: 0, topic: eu868/gateway/0016c001ff19ee50/event/ack
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received message, topic: eu868/gateway/0016c001ff19ee50/command/down, qos: AtMostOnce
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received downlink command, downlink_id: 951723449, topic: eu868/gateway/0016c001ff19ee50/command/down
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending downlink frame, downlink_id: 951723449
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Convert downlink protobuf to HAL struct error, downlink_id: 174513180, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Handle downlink error, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received ack, items: [], downlink_id: 174513180
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending ack event, downlink_id: 0, topic: eu868/gateway/0016c001ff19ee50/event/ack
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Convert downlink protobuf to HAL struct error, downlink_id: 1086700227, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Handle downlink error, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received ack, items: [], downlink_id: 1086700227
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending ack event, downlink_id: 0, topic: eu868/gateway/0016c001ff19ee50/event/ack
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Convert downlink protobuf to HAL struct error, downlink_id: 1117403186, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Handle downlink error, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received ack, items: [], downlink_id: 1117403186
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending ack event, downlink_id: 0, topic: eu868/gateway/0016c001ff19ee50/event/ack
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Convert downlink protobuf to HAL struct error, downlink_id: 951723449, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.err chirpstack-concentratord-sx1302[2246]: Handle downlink error, error: gps_ref_valid = false
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Received ack, items: [], downlink_id: 951723449
Mon Dec 15 16:07:11 2025 user.info chirpstack-mqtt-forwarder[3165]: Sending ack event, downlink_id: 0, topic: eu868/gateway/0016c001ff19ee50/event/ack

Meanwhile, the node switches to class C and is ready to receive fragments, but they are stuck between the forwarder and concentrator, never reaching the node.

Thanks again for your help.
Best regards,
FilipS