Sensors are not joining the LoRa network OTTA

Good morning Chirpstack community,

I recently ran into the issue that my devices are no longer able to join the LoRa network.

I am running Chirpstack Network Server v4.4.2

I see the following behaviour:

  • the device sends a JoinRequest, which Chirpstack successfully receives
  • Chirpstack responds with a JoinAccept
  • I can see the JoinAccept being transmitted by the Gateway in its logs
  • however, after a few minutes the device again attempts to rejoin the network with another JoinRequest

This tells me that the device is somehow not receiving the JoinAccept from Chirpstack.

I ruled out bad reception, since the device is practically next to the gateway.

I also see this behaviour with a completely different LoRa device, so it must be a Chirpstack configuration issue.

From what I could tell, its possibly related to the RX1 / RX2 settings in region_eu868.toml.

Initially a few months ago when I deployed Chirpstack, rx_delay=1 mostly worked and then I changed it to rx_delay=2 and it seems from that point onwards it never quite worked again, even if I changed it back to rx_delay=1. This is the only regions.network settings that I changed.

My questions:

  1. Could you please explain a good process to debug this behaviour, i.e. for which logs should I look out for, because I am not exactly sure what to expect

  2. Any advice on how I should configure Chirpstack to get this working again?

Many thanks in advance!

Here is what the JoinRequest looks like on Chirpstack:

{
    "phy_payload": {
        "mhdr": {
            "m_type": "JoinRequest",
            "major": "LoRaWANR1"
        },
        "mic": [
            43,
            209,
            238,
            120
        ],
        "payload": {
            "dev_eui": "a81758fffe0b58c3",
            "dev_nonce": 55238,
            "join_eui": "043e68d3d3e0ba82"
        }
    },
    "rx_info": [
        {
            "channel": 2,
            "context": "0RqmtA==",
            "crcStatus": "CRC_OK",
            "gatewayId": "503139534d404750",
            "location": {},
            "metadata": {
                "region_common_name": "EU868",
                "region_config_id": "eu868"
            },
            "rfChain": 1,
            "rssi": -66,
            "snr": 7.25,
            "time": "2023-11-10T08:41:37.972353+00:00",
            "uplinkId": 2817
        }
    ],
    "tx_info": {
        "frequency": 868500000,
        "modulation": {
            "lora": {
                "bandwidth": 125000,
                "codeRate": "CR_4_5",
                "spreadingFactor": 7
            }
        }
    }
}

And here is what the JoinAccept looks like on Chirpstack:

{
    "phy_payload": {
        "mhdr": {
            "m_type": "JoinAccept",
            "major": "LoRaWANR1"
        },
        "mic": [
            6,
            115,
            18,
            234
        ],
        "payload": "5b762fe233fdeb55e3dfa58c532b015a7795d078bdf116b4c52b3d26"
    },
    "tx_info": {
        "context": "0RqmtA==",
        "frequency": 868500000,
        "modulation": {
            "lora": {
                "bandwidth": 125000,
                "codeRate": "CR_4_5",
                "polarizationInversion": true,
                "spreadingFactor": 7
            }
        },
        "power": 14,
        "timing": {
            "delay": {
                "delay": "5s"
            }
        }
    }
}

On the gateway logs, it seems that the delay between JoinRequest and JoinAccept is always the same (one second or less), so it seems that the rx_delay has no influence?

This is not the issue. The ~ 1 second that you mention are between receiving the join-request and sending the join-accept to the gateway. It is not the timestamp of transmission.

I ruled out bad reception, since the device is practically next to the gateway.

A device really close to a gateway can lead to issues as the received signal might overdrive the gateway radio, causing the uplink being reported on two channels. In this case ChirpStack might send the downlink on the wrong channel.

Hi
I face the same issue with LoRa-E5 Dev Board.
With TTN server, i have no problem when connect lora chip to Lora gateway
With Chirpstack, my gateway send Join Accept but LoRa chip do not receive Join Accept. What could i do ?

Have you seen this documentation:

It might help you to debug where the issue is.

i have been tried everything but my LoRa-E5 dev board still not connect to my gateway on chirpstack. Still the validate dev nounce error.
I have delete database dev nounce, configure all LoRaMAC version,etc,…
Chirpstack still reject my OTTA connection with validate dev nounce error.
JoinAccept after JoinRequest but i can not join OTTA. Chirpstack reject connection.
Do you have any idea ?

Likely issue at the node.
Which library are you using? Radiolib?

Please screenshot the error details.

The big problem:
I have already success connect my LoRa-E5 dev board to my UG63 gateway with chirpstack. After i use my new UG56, chirpstack won’t work anymore, with both gateway. I try connect only with UG63 with same old settings, it won’t work anymore.
I clearly do not know what is the issue. I have set all the LoRaMAC Version and region parameter, delete and set again device, and delete dev nounce in progres sql database of chirpstack network server too, it won’t work