JoinRequest being silently dropped from devices that are enrolled successfully - only difference is the gateway

As things stand:

  • Two private-network gateways, geographically far apart: Gateway CF and Gateway SB
  • Two devices, Device DB and Device B4.
  • The two devices have been OTAA JOIN’ing and sending data successfully the past few weeks over gateway CF.
  • At gateway SB - we see JoinRequests, and no JoinAccepts
  • We did not change the devices, only powered-off and powered-on.

Today we are testing out devices DB and B4 in the geographical area where Gateway SB is installed:

  • We see the LoRaWAN JoinRequest frame come in to the Gateway SB
    • At #/organizations/1/gateways/<SB-dev-eui>/frames
  • We see the LoRaWAN JoinRequest frame come in through the Devices
    • At #/organizations/1/applications/1/devices/<DB-dev-eui>/frames and
    • #/organizations/1/applications/1/devices/<B4-dev-eui>/frames
  • We do not see a JoinAccept generated by ChirpStack, as we have many times before in the past weeks on gateway CF.
  • We do not see any error in Device Data, this stays clear:
    • #/organizations/1/applications/1/devices/<B4-dev-eui>/data

We followed https://www.chirpstack.io/project/guides/connect-device/#troubleshooting and disabled frame-counter validation for device DB (not believing that that is the cause of our issue), and got one error - the “validate dev-nonce error”. Saw this here:

  • #/organizations/1/applications/1/devices/<DB-dev-eui>/data

So now we are stumped. ChirpStack keeps on receiving JoinRequests and routing it to the correct device. ChirpStack does not respond, and does not generate errors either.

What can we check next?

A DevNonce can only be used once. If the device after a power-cycle starts re-using DevNonces, then this indicates an issue with the device firmware. An other issue could be that the DevNonce range already has been exhausted.

You will find some OTAA related recommendations here: https://lora-alliance.org/resource-hub.

1 Like