I have seen many posts regarding this and have gone over the details at this end and I am convinced keys are good. I have two nodes both are OTAA. At one point (a week or so ago) both were communicating but now only one of them comes up. I have configured Chirpstack APP_KEY, JOIN_EUI and DEV_EUI and then verified this with postgreSQL table …Chirpstack - Applications - Device eui- Events shows error. What else can I do?
You may messed up the keys in Postgres and Redis.
MIC error is 99.99% incorrect keys in PostGres and Redis.
You may click save again in the Device keys to sync the keys.
I reflashed the node device with a new APP_KEY and changed the APP_KEY on chirpstack. I get the same issue.
Postgres database reveals new key and JOIN_EUI are correct.
Docker logs indicate the node is sending join request packets.
Chirpstack web page indicates incoming join requests with correct JOIN_EUI and DEV_EUI along with continued MIC error.
I am using LoRaWAN MAC 1.0.3 on both ends. Could it be something with DevNonce?
Problem solved.
Turns out the ST FW on the end node somehow somewhere was retaining bad info. I was using CubeIDE to reload. I changed to Cube Programmer and first erased ALL of flash then reprogrammed and board immediately came up and was recognized by chirpstack!
Some firmware of the node will retain the keys into flash after one successful join.
Then it will keep trying to use the saving keys for a while.
Either re-flash or force the node to do rejoin.