Complete
over 4 years ago

WERETECH-8374

Forerunner 945 Firmware 3.90 appears to have broken TrainAsONE widget

We're getting reports from 945 users that with the update to 3.90 firmware the TrainAsONE widget can no longer download workouts.

It does connect and tries to retrieve the workout from the server. But it does not succeed and after a while the watch goes back to the watchface. Trying to adjust settings (which makes a request to the server) also no longer works.

We do not have a 945 so cannot test directly - we cannot reproduce the issue on the watches we have, or on the 945 in the simulator (using SDK 3.1.6)

So this is something of a call for help, and to see if anyone else has seen anything similar...

Thanks

David

  • Thanks - we have also had reports from users that firmware 4.10 seemed to fix the issue for them

    Thanks again

  • , please let us know if we can be of further assistance. this issue has been resolved, thank you.

  • We've seen this with a couple of other similar platforms now after the 3.90 update. There was a hotfix version 4.00 that went out that was for a different issue. We were able to reproduce this with an internal testing app and are getting it propagated to the device teams.

  • OK, it looks like the callback for the FIT workout is never firing.

    This works on other devices - from 735xt up to 945 before the recent firmware update.

    Sample code below - the full app is at https://github.com/TrainAsONE/trainasone-connectiq

    Any thoughts on why this would have stopped working?

    Thanks

      {
        // For now use old request endpoint as setting Comm.REQUEST_CONTENT_TYPE_JSON
        // on a FIT endpoint explodes on devices (runs fine in simulator)
        var url = mModel.serverUrl + "/api/mobile/plannedWorkout";
        var options = {
          :method => Comm.HTTP_REQUEST_METHOD_GET,
          :headers => {
            "Authorization" => "Bearer " + mModel.accessToken
          },
          :responseType => Comm.HTTP_RESPONSE_CONTENT_TYPE_FIT
        };
    
        try {
          Comm.makeWebRequest(url, setupParams(), options, method(:onDownloadWorkoutResponse));
        } catch (e instanceof Lang.SymbolNotAllowedException) {
          Error.showErrorResource(Rez.Strings.errorUnexpectedDownloadNotAllowedError);
        } catch (e) {
          Error.showErrorResource(Rez.Strings.errorUnexpectedDownloadError);
        }
      }
      
      function onDownloadWorkoutResponse(responseCode, downloads) {
        updateState("saving");
        // etc, but updateState() above is never called
      }
      
      function setupParams() {
        var params = {
          "appVersion" => AppVersion,
          "device" => System.getDeviceSettings().partNumber,
          "jsonErrors" => 1 // wrap any response code errors in JSON
        };
        // some code that does not affect params in this case
        return params;
      }

  • It looks like its somehow not processing the returned FIT workout data - its just sitting on the screen until timeout. I'm not seeing anything on the ERA, but I have three users who are testing debug versions (just on the second cycle now :)