Troubleshooting

Debugging 5G registration failure

Systematic debugging of 5GS registration failures: every reject cause, T3510 expiry, USIM mismatches, and the log lines that identify each one.

9 min read

Registration is the first real procedure a UE performs and the most common place a conformance run dies. Failures split into three classes: the network rejected you, the network never answered, or the UE never asked.

Class 1 — Registration Reject

The network answered with a 5GMM cause. This is a protocol or provisioning problem and the cause value tells you which.

CauseMeaningUsual fix
#3 Illegal UEAuthentication failed on network sideCheck usim.k / usim.opc against PIXIT
#6 Illegal MEIMEI blockedSet a valid usim.imei
#7 5GS services not allowedSubscription lacks 5GSCheck PICS pc_NR_SA and lane profile
#11 PLMN not allowedPLMN mismatchAlign ue.conf PLMN with lane plmn (00101)
#15 No suitable cells in TATracking area rejectedCheck band/ARFCN against the lane
#22 CongestionBack-off timer appliedRetry after T3346; not a UE bug
#27 N1 mode not allowedSA disabled for subscriberUse an SA-enabled lane profile

Class 2 — T3510 expiry (no answer)

The UE asked and heard nothing back. Almost always lower-layer: gain, timing, or a tunnel with excessive jitter. Check SINR before you touch NAS code.

  • SINR below 5 dB: adjust rf.tx_gain / rf.rx_gain, or request a fresh lane calibration.
  • Tunnel RTT above 80 ms: switch to a hosted build (Model A) instead of Model B.
  • Uplink grant never seen in the MAC PCAP: PRACH power problem, raise tx_gain.
engine.logtext
[NAS] Registration Request (initial) sent, T3510 started (15s)
[RRC] state: RRC_CONNECTED
[PHY] rsrp=-104.8 dBm sinr=1.2 dB   <- weak link
[NAS] T3510 expiry (attempt 1/5)
verdict: fail  clause 24.501:5.5.1.2.4

Class 3 — no Registration Request at all

  • SIB1 never decoded: wrong dl_arfcn or ssb_arfcn — the UE never found the cell.
  • Cell found but no PRACH: PLMN in SIB1 is not in the UE's allowed list.
  • USIM read failure: usim.mode = soft with a malformed k value.

Fast triage

bashbash
aeon copilot explain --exec 4821 --focus registration
aeon exec artifacts --id 4821 --get ue_nas.pcap --out ./e/
tshark -r ./e/ue_nas.pcap -Y 'nas-5gs' -T fields -e nas-5gs.mm.message_type

noteOrder of investigation: SINR, then SIB1, then USIM, then NAS. Skipping to NAS wastes the most time.

Run this against a real SDR lane

The tester is a service, not a box. Push a build, reserve a lane, get a verdict.