Thanks ScruffR. No, that’s just an excerpt - but nothing else takes much time in order to ensure that Particle.process is called regularly. Of course, now it seems the call to Cellular - despite the unit having good access to cell and cloud is stopping the call to Particle.process and thus unit cannot see there is an OTA waiting.
Yes, I made a truly amateur hour mistake but I took the code from the reference document assuming there were no odd side effects and the library call would do as described. I wished the documentation made it clear whenever there is a function which can block. Or if there is a function which should not be called too often - build into the function a ‘throttle’ with an optional override parameter which can be passed in. Some of these library functions can truly make a system fragile without the developer knowing it.
I cannot manually put the device into safe mode - it is 4 hours away from customer (who is 1 day away from me) - is there any trick to getting an OTA to occur even if the unit is spending most of its time running code in Cellular?