How did I get HTTP Status Code 0?

I’m currently posting events from my agent and device to loggly. It’s working pretty well but I’ve seen (once or twice) the statuscode 0 returned from the async httppost callback. According to the docs, this is CURLE_OK, which means everything’s fine. Surely, this should’ve been replaced by a 200? I can confirm that loggly never received the particular event, but happily accepted events before and afterwards. Can I assume that ElectricImp’s http API lost the POST somewhere? The time that it happened was:

2014-07-08 09:29:30 UTC+12 [Device] onStatus 2014-07-08 09:29:31 UTC+12 [Device] SEND:{"rssi": -41, "group": "wifi", "event": "scan", "level": 4, "visible": 11} 2014-07-08 09:34:31 UTC+12 [Device] onStatus 2014-07-08 09:34:31 UTC+12 [Device] SEND:{"rssi": -48, "group": "wifi", "event": "scan", "level": 4, "visible": 5} 2014-07-08 09:39:31 UTC+12 [Device] onStatus 2014-07-08 09:39:32 UTC+12 [Device] SEND:{"rssi": -55, "group": "wifi", "event": "scan", "level": 4, "visible": 9} 2014-07-08 09:44:32 UTC+12 [Device] onStatus 2014-07-08 09:44:32 UTC+12 [Device] SEND:{"rssi": -43, "group": "wifi", "event": "scan", "level": 4, "visible": 6} 2014-07-08 09:49:32 UTC+12 [Device] onStatus 2014-07-08 09:49:32 UTC+12 [Device] SEND:{"rssi": -42, "group": "wifi", "event": "scan", "level": 4, "visible": 8} 2014-07-08 09:54:32 UTC+12 [Device] onStatus 2014-07-08 09:54:33 UTC+12 [Agent] event.log statuscode:0 2014-07-08 09:54:33 UTC+12 [Device] SEND:{"rssi": -43, "group": "wifi", "event": "scan", "level": 4, "visible": 6} 2014-07-08 09:59:33 UTC+12 [Device] onStatus 2014-07-08 09:59:33 UTC+12 [Device] SEND:{"rssi": -42, "group": "wifi", "event": "scan", "level": 4, "visible": 7}

The event in question is a 5 minutely report of wifi status.

If this event is occasionally unavoidable, what steps should I take? Resend?

That could happen if you’ve called httprequest.cancel (unlikely, as this appears to be missing from the api docs - will fix) or if curl fails to provide an http status code when we’re preparing to make the squirrel callback (will also fix this and return the curl error). In the meantime resending seems like the best course of action.