First things first: I have already read the previous posts on this and attempted the advice in e.g. Error: device-session does not exist or invalid fcnt or mic - #2 by brocaar and attempted it.
The problem: I have a number of devices that occasionally have Unconfirmed Uplinks fail with Invalid MIC errors (from the MQTT bus, this on messages:
"type":"UPLINK_MIC","error":"invalid MIC",). Sometimes they self resolve.
I have attempted to reset counters. I have attempted to toggle the framecounter validation flag for the affected devices.
In addition to this I have also done some light reading of the source in an attempt to find out why this might be happening, as well as looking at the redis keys (although this was less useless since I’d have to decode the protobuf object, and didn’t have things set up for that).
These devices definitely do occasionally reboot (battery changes, software crashes), and frame counter resets are typical. But sometimes some of them just stop working entirely and it’s always this failure.
Maybe there is something incorrect with the device-session data in redis? I’m not sure how to tell, the logs don’t seem to provide any more information on this either. Similarly uncertain about how to recreate the session information or so.
System is on the latest versions of chirpstack, on a Debian installation from the https://artifacts.chirpstack.io/packages/3.x/deb repo.
ii chirpstack-application-server 3.16.0 amd64 ChirpStack Application Server ii chirpstack-gateway-bridge 3.12.0 amd64 ChirpStack Gateway Bridge ii chirpstack-network-server 3.14.0 amd64 ChirpStack Network Server
Notes: these seem to only work on ABP when using Chirpstack. They worked on OTAA with TTN, for reasons unclear to me as I didn’t have time to investigate, so it was necessary to roll them out with ABP (and OTAA is not an option).