TTN nRF52 receives no join accept

Hello, I'm struggling with an issue for several days now. I have a nRF52840 based Board connected to a SX1262 and use the LoRaWan_Starter to get a connection to TTN. In the TTN I see that a join accept was sent, but the nRF does not receive it. It is stuck at Join ('login') the LoRaWAN Network If I swap the nRF for an esp32-c6 or S3 with the same code (only changed the pin assignments), there it works. I have tried different pins on the nRF, different wires, antennas, a different SX1262 module and different frequency plans (the esp worked on 868.1MHz). I also tried the code on a Wio Tracker L1 pro (also nRF52840 and sx1262 and had the same issue). I have honestly no clue why it works on one platform but not the other. Maybe its a speed problem? Has anyone had a similar issue, or now's a fix. I appreciate all help and hope I gave all relevant information. I used pretty much the stock LoRaWan_Starter Arduino Example. Here are my logs and my code:

`/*

RadioLib LoRaWAN Starter Example

! Please refer to the included notes to get started !

This example joins a LoRaWAN network and will send
uplink packets. Before you start, you will have to
register your device at https://www.thethingsnetwork.org/
After your device is registered, you can run this example.
The device will join the network and start uploading data.

Running this examples REQUIRES you to check "Resets DevNonces"
on your LoRaWAN dashboard. Refer to the network's
documentation on how to do this.

For default module settings, see the wiki page
https://github.com/jgromes/RadioLib/wiki/Default-configuration

For full API reference, see the GitHub Pages
https://jgromes.github.io/RadioLib/

For LoRaWAN details, see the wiki page
https://github.com/jgromes/RadioLib/wiki/LoRaWAN

*/
//#include "Adafruit_TinyUSB.h"

#include "config.h"

void setup() {
Serial.begin(115200);
delay(2000);
while(!Serial){
delay(50);
}

Serial.println(F("\nSetup ... "));

Serial.println(F("Initialise the radio"));
int16_t state = radio.begin();
debug(state != RADIOLIB_ERR_NONE, F("Initialise radio failed"), state, true);

// Setup the OTAA session information
state = node.beginOTAA(joinEUI, devEUI, nwkKey, appKey);
debug(state != RADIOLIB_ERR_NONE, F("Initialise node failed"), state, true);

Serial.println(F("Join ('login') the LoRaWAN Network"));
state = node.activateOTAA();
debug(state != RADIOLIB_LORAWAN_NEW_SESSION, F("Join failed"), state, true);

Serial.println(F("Ready!\n"));
}

void loop() {
Serial.println(F("Sending uplink"));

// This is the place to gather the sensor inputs
// Instead of reading any real sensor, we just generate some random numbers as example
//uint8_t value1 = radio.random(100);
uint8_t value1 = 10;
uint16_t value2 = 10;

// Build payload byte array
uint8_t uplinkPayload[3];
uplinkPayload[0] = value1;
uplinkPayload[1] = highByte(value2); // See notes for high/lowByte functions
uplinkPayload[2] = lowByte(value2);

// Perform an uplink
int16_t state = node.sendReceive(uplinkPayload, sizeof(uplinkPayload));
debug(state < RADIOLIB_ERR_NONE, F("Error in sendReceive"), state, false);

// Check if a downlink was received
// (state 0 = no downlink, state 1/2 = downlink in window Rx1/Rx2)
if(state > 0) {
Serial.println(F("Received a downlink"));
} else {
Serial.println(F("No downlink received"));
}

Serial.print(F("Next uplink in "));
Serial.print(uplinkIntervalSeconds);
Serial.println(F(" seconds\n"));

// Wait until next uplink - observing legal & TTN FUP constraints
delay(uplinkIntervalSeconds * 1000UL); // delay needs milli-seconds
}

i found the I enabled the RADIOLIB_DEBUG_BASIC and RADIOLIB_DEBUG_PROTOCOL and got that output:

Setup ...
Initialise the radio
[4.291015] RLB_DBG:
RadioLib Info
Version:  "7.6.0.0"
Platform: "Adafruit nRF52"
"Apr  4 2026" "14:21:46"
[4.302734] RLB_DBG: Found SX126x: RADIOLIB_SX126X_REG_VERSION_STRING:
[4.303710] RLB_DBG: 00000320: 53 58 31 32 36 31 20 56 32 44 20 32 44 30 32 00  SX1261 V2D 2D02.
[4.303710] RLB_DBG:
[4.303710] RLB_DBG: M	SX126x
Join ('login') the LoRaWAN Network
[4.394531] RLB_PRO: [MAC] 0x03
[4.394531] RLB_PRO: 00000000: 30                                               0
[4.395507] RLB_PRO: LinkAdrReq: dataRate = 3, txSteps = 0, nbTrans = 0
[4.395507] RLB_PRO: LinkAdrAns: 07
[4.395507] RLB_PRO: [MAC] 0x04
[4.395507] RLB_PRO: 00000000: 07                                               .
[4.396484] RLB_PRO: DutyCycleReq: max duty cycle = 1/2^7
[4.396484] RLB_PRO: [MAC] 0x05
[4.396484] RLB_PRO: 00000000: 00 d2 ad 84                                      ....
[4.397460] RLB_PRO: RXParamSetupReq: Rx1DrOffset = 0, rx2DataRate = 0, freq = 869.525
[4.404296] RLB_PRO: [MAC] 0x08
[4.404296] RLB_PRO: 00000000: 01                                               .
[4.404296] RLB_PRO: RXTimingSetupReq: delay = 1 sec
[4.405273] RLB_PRO: [MAC] 0x09
[4.405273] RLB_PRO: 00000000: 05                                               .
[4.405273] RLB_PRO: [MAC] 0x0c
[4.406250] RLB_PRO: 00000000: 65                                               e
[4.406250] RLB_PRO: ADRParamSetupReq: limitExp = 6, delayExp = 5
[4.406250] RLB_PRO: [MAC] 0x0f
[4.406250] RLB_PRO: 00000000: fa                                               .
[4.407226] RLB_PRO: RejoinParamSetupReq: maxTime = 15, maxCount = 10
[4.408203] RLB_PRO: JoinRequest (DevNonce = 0):
[4.409179] RLB_PRO: 00000000: 00 00 00 00 00 00 00 00 00 0d 3a 07 d0 7e d5 b3  ..........:..~..
[4.409179] RLB_PRO: 00000010: 70 00 00 04 51 69 9f                             p...Qi.

[4.410156] RLB_PRO: Frequency = 868.300 MHz, TX = 16 dBm
[4.412109] RLB_PRO: [LoRa] SF = 9, BW = 125.0 kHz, CR = 4/5, IQ: U
[4.625000] RLB_PRO: Uplink sent (ToA = 205 ms)

[4.625976] RLB_PRO: Frequency = 868.300 MHz, TX = 16 dBm
[4.627929] RLB_PRO: [LoRa] SF = 9, BW = 125.0 kHz, CR = 4/5, IQ: D