Hi,
I'm trying to configure Lorawan roaming beetween Chirpstack and Actility.
I set the configuration according the documentation found online but when a device try to execute a Join Request, Chirsptack wrote this error message:
2025-11-21T09:08:40.491679Z ERROR up{deduplication_id=b3011a99-4046-40f1-81bd-2782314ca8f9}: chirpstack::uplink::join: Handle join-request error error=rx_info_set is empty
I checked the rust source code and I found the errore message on file "mod.rs":
fn filter_rx_info_by_public_only(uplink: &mut UplinkFrameSet) -> Result<()> {
let mut rx_info_set: Vec<gw::UplinkRxInfo> = Vec::new();
for rx_info in &uplink.rx_info_set {
let gateway_id = EUI64::from_str(&rx_info.gateway_id).context("Gateway ID")?;
if !(*uplink
.gateway_private_up_map
.get(&gateway_id)
.ok_or_else(|| anyhow!("gateway_id missing in gateway_private_up_map"))?)
{
rx_info_set.push(rx_info.clone());
}
}
uplink.rx_info_set = rx_info_set;
if uplink.rx_info_set.is_empty() {
return Err(anyhow!("rx_info_set is empty"));
}
Ok(())
}
I checked the json message sent via MQTT and it seems to have all the information.
{
"phy_payload": {
"mhdr": {
"f_type": "JoinRequest",
"major": "LoRaWANR1"
},
"mic": [
67,
238,
68,
5
],
"payload": {
"dev_eui": "1234567890abcdef",
"dev_nonce": 62507,
"join_eui": "0000000000000000"
}
},
"rx_info": [
{
"channel": 1,
"context": "dkoEPw==",
"crcStatus": "CRC_OK",
"gatewayId": "1234567890abcdef",
"location": {},
"nsTime": "2025-11-21T09:12:15.853369653+00:00",
"rfChain": 1,
"rssi": -48,
"snr": 9.800000190734863,
"uplinkId": 45591
}
],
"tx_info": {
"frequency": 868300000,
"modulation": {
"lora": {
"bandwidth": 125000,
"codeRate": "CR_4_5",
"spreadingFactor": 11
}
}
}
}
Any idea ?