makeWebRequest not working on FR630, crashing GarminConnect on iPhone 7.

Given issues I've been having with interaction between HTTP requests and activity sessions recording, I decided to try switching my HTTP requests to use makeWebRequest() instead of the older makeJsonRequest() to see if that would make a difference. I need to do it eventually anyways. I have it working without issue in the simulator, but when I use makeWebRequest on my device, the result code I get is -2 : BLE_HOST_TIMEOUT. Further, if I have the Garmin Connect app running in the foreground on my iPhone 7, it crashes (my iPhone just reverts to the home screen). I have the latest GC on my phone, v 3.15. My FR630 is completely up-to-date as well.

The request, as far as I can tell, is never making it to my web server as I have a break point set in the web request handler.

The original code, which works fine on the device and simulator
Comm.makeJsonRequest(url,{"id"=>strDevID, "steps"=>actinfo.steps,"cmd"=>cmd},null, method(:onNewData));

The new code, which works fine in the simulator but not on the device. I've tried explicitly setting up the options dictionary but it makes no difference so I've just left it with all defaults.
Comm.makeWebRequest(
url,
{"id"=>strDevID, "steps"=>actinfo.steps,"cmd"=>cmd},
{}, //options - use defaults
method(:onNewData));