Connecting NB IoT on roaming SIMs

On Qualcomm (BG96, BG95, BG77), and Huawei (BC95-G, BC68) This roaming SIM scenario presents special challenges to NB IoT radio and can take 10’s of minutes to find service for 1st time. After this 1st time the cell network information is cached and following searches only take seconds.

How to tell if I have a roaming SIM?
The first 5 (or 6 if Americas) numbers of the IMSI read from the SIM (see the AT+CIMI command) is the home PLMN network e.g. 50501 is Telstra. 505=MCC 01=MNC. There is full list at https://www.mcc-mnc.com/ . If the MCC (mobile country code) is different from you country of device deployment, then this is roaming scenario.
Note that Vodafone NB IoT SIMs in Australia are roaming SIMs, it may be the case in other Vodafone LPWAN networks in other countries since they use their common GDSP platform around the world.
To speed up network selection for 1st time, manually force the search to Vodafone, use the below command:
Manual PLMN selection: AT+COPS=1,2,”<MCC><MNC>”   //Vodafone Australia is “50503”

Additional options – set the bands to include only the required bands (or one frequency):
BC95:
AT+CFUN=0
AT+NBAND=3,8,28 //restrict to B3, B8, B28
AT+CFUN=1
AT+NEARFCN=0,<earfcn> // lock search to one EARFCN

BG95:
AT+QCFG=”band”,0,8000084,8000084 //restrict to B3, B8, B28 for Australia, New Zealand networks