rach failure could be due to two main reasons:
1) the channel request contains an invalid “cause” field.
2) the timing advance is greater than the max timing advance allowed (“rach ta filter” or “max ta”)
Reason 2 is quite straightforward. Maximum TA possible is 63, but it can be reduced by operator.
Reason 1 : mostly due to electromagnetic noise which sounds like a near-perfect channel request. Except the field “cause” contains an invalid value.
-> possibly HO ACCESS aimed at another cell (TCH, BSIC) where TCH(n)=BCCH(s) and BSIC(n)=BSIC(s).
-> possibly self-generated noise from the BTS itself
-> a crazy MS
-> an external device that sends bursts of signal, which actually sounds like a ch. req. (i think we’ve seen an army radar which was doing this, on this forum, a while ago)