Coincidentally, I’ve also been working on experimenting with RIOT on a lorawan node this week, in combination with a dragino Pi hat as a lorawan gateway.
I too am having difficulties getting a successful join. I noticed that my Join Request is being received by both the gateway and the TTN network console. I’m also seeing a Join Accept being sent out by TTN (in the console), and on the device-console it marks it as “seen”.
But still the join fails…
My current hypothesis is that the join accept is never received by the Gateway, so it cannot send it to the node. This might be because my firewall is blocking incoming UDP traffic from TTN.
I’m not sure if your issue is the same as mine, but you might want to try opening up UDP port 1700 on your router.