Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P2G attempts to enrich Class Plan Details when Ride Id is invalid #457

Closed
philosowaffle opened this issue Mar 18, 2023 Discussed in #456 · 1 comment · Fixed by #458
Closed

P2G attempts to enrich Class Plan Details when Ride Id is invalid #457

philosowaffle opened this issue Mar 18, 2023 Discussed in #456 · 1 comment · Fixed by #458
Labels

Comments

@philosowaffle
Copy link
Owner

Discussed in #456

Originally posted by focustrate March 17, 2023
I've been running P2G without fail for a couple of weeks, via the console, built from source, on MacOS. Today, I started getting errors. It seems as though the ride IDs are not fetching properly, and it's then trying to pull down the details for a ride whose ID is all zeros.

Anyone have any idea where to go from here? I am guessing I could start debugging in src/Sync/SyncService.cs, but I don't have even rudimentary knowledge of c#.

Here's the output I'm seeing:

[20:27:20 INF] *********************************************
[20:27:20 INF] P2G Version: p2g_console 3.5.0-rc
[20:27:20 INF] Operating System: Unix
[20:27:20 INF] OS Version: Unix 13.1.0
[20:27:20 INF] DotNet Runtime: Unix 13.1.0
[20:27:20 INF] Docker Deployment: False
[20:27:20 INF] Config path: /Users/****/Downloads/peloton-to-garmin/src/PelotonToGarminConsole/configuration.local.json
[20:27:20 INF] *********************************************
[20:27:21 INF] *********************************************
[20:27:21 INF] *********************************************
[20:27:22 INF] Found 5 completed workouts.
[20:27:23 INF] Retry Policy - https://api.onepeloton.com/api/ride/00000000000000000000000000000000/details - attempt 1
[20:27:24 INF] Retry Policy - https://api.onepeloton.com/api/ride/00000000000000000000000000000000/details - attempt 2
[20:27:27 INF] Retry Policy - https://api.onepeloton.com/api/ride/00000000000000000000000000000000/details - attempt 3
^C[20:27:32 INF] HTTP Request: GET - https://api.onepeloton.com/api/ride/00000000000000000000000000000000/details - Cookie: peloton_session_id=a4d06ca8f7fc405787d3af6c5aadf010
Peloton-Platform: web
Accept-Encoding: gzip, deflate
 - 
[20:27:32 INF] HTTP Response: NotFound - GET - https://api.onepeloton.com/api/ride/00000000000000000000000000000000/details - Date: Sat, 18 Mar 2023 00:27:32 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Peloton-Activity-Id: 7a9959b6db3842af-EWR
Vary: peloton-platform
Auth-Method: session
Strict-Transport-Security: max-age=15724800; includeSubDomains
CF-Cache-Status: DYNAMIC
Set-Cookie: __cf_bm=q4ZT8dlRrAyxvzYswxuEYTH07QMbr9xRE2n09qK13s8-1679099252-0-Abb7fSjv4ngq8QlMlVdECmUzHkuJ3ZmiPZn4ttnQSNVyCs3QPl//lBPpldif2uPadcQQatF2hUY1J7kFFPbH78Q=; path=/; expires=Sat, 18-Mar-23 00:57:32 GMT; domain=.onepeloton.com; HttpOnly; Secure, _cfuvid=cTE4VPNXZXJ6wgOr2C0zvWLIFFTT854rv2dYPbaNwCE-1679099252358-0-604800000; path=/; domain=.onepeloton.com; HttpOnly; Secure; SameSite=None
Server: cloudflare
CF-RAY: 7a9959b6db3842af-EWR
 - {"status":404,"error_code":110,"subcode":null,"message":"Ride not found","details":null}
[20:27:32 ERR] Failed to download workouts from Peloton.
Flurl.Http.FlurlHttpException: Call failed with status code 404 (Not Found): GET https://api.onepeloton.com/api/ride/00000000000000000000000000000000/details
   at Flurl.Http.FlurlRequest.HandleExceptionAsync(FlurlCall call, Exception ex, CancellationToken token)
   at Flurl.Http.FlurlRequest.SendAsync(HttpMethod verb, HttpContent content, CancellationToken cancellationToken, HttpCompletionOption completionOption)
   at Flurl.Http.FlurlRequest.SendAsync(HttpMethod verb, HttpContent content, CancellationToken cancellationToken, HttpCompletionOption completionOption)
   at Flurl.Http.ResponseExtensions.ReceiveJson[T](Task`1 response)
   at Peloton.ApiClient.GetClassSegmentsAsync(String rideId) in /Users/****/Downloads/peloton-to-garmin/src/Peloton/ApiClient.cs:line 210
   at Peloton.PelotonService.GetWorkoutDetailsAsync(String workoutId) in /Users/****/Downloads/peloton-to-garmin/src/Peloton/PelotonService.cs:line 280
   at Peloton.PelotonService.GetWorkoutDetailsAsync(ICollection`1 workoutIds) in /Users/****/Downloads/peloton-to-garmin/src/Peloton/PelotonService.cs:line 253
   at Sync.SyncService.SyncAsync(IEnumerable`1 workoutIds, ICollection`1 exclude) in /Users/****/Downloads/peloton-to-garmin/src/Sync/SyncService.cs:line 81
[20:27:32 INF] Done
[20:27:32 INF] Sleeping for 14400 seconds...

```</div>
@philosowaffle
Copy link
Owner Author

philosowaffle commented Mar 18, 2023

Seems possible for Peloton to return Empty Guid for Ride Ids. P2G should guard against this. This probably happens on "Just Run" and "Just Ride" type workouts where there is no Class associated with the workout.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant