Occasionally onBackgroundData is not invoked when background.exit()

Hi, I have a watch face that is using makeWebRequest in a background to get data from a web server. Occasionally, the wath face stops update the data in the UI, this usually happens after connecting it to the USB, or after exiting the morning report, and sometimes it just happens.

Whar Ican see in the log files is that the background process fires up as it should, it makes the webRequest and the callback function gets invoked with the data and responseCode. In the web request callback function function readResponse(responseCode, data) as void I can see that I got good data and I call Background.exit(myData);

When things are working as they should, the on BackgroundData(data)function gets invoked and I get the data to the foreground so I can update th UI. 

Here is the log entries when it works:

T:15:19:33 app:onStart
T:15:19:33 in getServiceDelegate
T:15:19:33 Background Service initialize()
T:15:19:33 in onTemporalEvent
T:15:19:33 in getData
T:15:19:36 in readResponse: [<my data here>] 200
T:15:19:36 in readResponse: bg_exit with data
T:15:19:36 in onBackgroundData: [<my data here>]

Her is the logging when it doesn't work:

T:14:41:32 app:onStart
T:14:41:32 in getServiceDelegate
T:14:41:32 BG Service initialize
T:14:41:32 in onTemporalEvent
T:14:41:32 in getData
T:14:41:35 in readResponse: [my data here] 200
T:14:41:35 in readResponse: bg_exit with data
T:14:41:35 app:onStop

When the problem starts, the only way to get it working again is to restart the watch, or toggling to another watch face and then toggle back. 

The problem not that the background process fires, it always does, the problem is that the onBackgroundData in the main app does not get called when I do Background.exit() from the background

I have completetly run out of ideas of things to test. Anyone seen this before? could it be something happening in the system that disconnects the background process from the app, or something? I'm clueless. 

I have no crashes and no crash file on the target. 

I can of cours edump all my code here but wanted to see if anyone had any idea first. 

as always, thanks for your help.