@wstallwood said in OSError: [Errno 11] EAGAIN: https://forum.pycom.io/topic/502/socket-send-msg-timeout Hi, in order to catch an error without crashing you can just wrap the call with: try: s.send(data) except OSError as e: if e.args[0] == 11: # EAGAIN error occurred, add your retry logic here A list of what all the error numbers mean can be found in this file: https://github.com/pycom/pycom-micropython-sigfox/blob/5bed5e9a84bb1abfc4d59476f3f62b38920c5eda/py/mperrno.h Onto why this error occurs, having a look at the lora source code you can find that this error is raised here: https://github.com/pycom/pycom-micropython-sigfox/blob/master/esp32/mods/modlora.c#L2082 This error is raised if send_lorawan returns zero, which can happen for two reasons, the message was added to the queue (which is what I believe you are refering to with the duty cycle limiting) or there was a LORA_STATUS_ERROR.