-
released this
2026-08-02 21:00:25 -05:00 | 4 commits to main since this releaseStops chasing LoL Classic match results that Riot never publishes, and makes Classic predictions opt-in.
Why
Riot serves LoL Classic (JADE, queue 4310) through Spectator v5 but not Match v5. Verified against the live API with the production key:
Probe Result matches/NA1_<classic>403 Forbidden — the match file exists, a third-party key may not read it matches/NA1_9999999999404 match file not found— genuinely absent looks differentmatches/NA1_<ranked SR>200 — same key, same routing, so the key is fine ids?queue=4310[]— zero Classic matches in historySo the result never arrives, and never will.
Added
LOL_PREDICTION_CLASSIC_ENABLED(defaultfalse) — predict LoL Classic games. Off because a Classic prediction can never be scored. Settrueto restore the old behaviour. Ranked predictions are untouched.CLASSIC_QUEUE_IDexported from the LoL config module, replacing bare4310literals.
Fixed
- A match Riot refuses to serve no longer earns 30 minutes of retries.
GameEndHandlertreated the 403 like any other failure and started its deferred retry timer — 30 more attempts, 60s apart, each a guaranteed 403. Every Classic game cost 31 pointless Riot calls and held its entry open for half an hour. The fetch now separates pending (retry) from unavailable (403 — stop), and the retry loop aborts if a 403 first appears mid-retry. - A 403 no longer masquerades as an expired API key. 401 and 403 were logged together as
"Riot API auth error"at error level, so each Classic game emitted 31 error lines claiming the key had died — enough to bury a genuine expiry. 401 keeps error level; 403 now logs at warn as"Riot API forbidden". Both still throwRiotApiErrorwith the status.
Changed
- The game-end embed now reads "Riot doesn't publish results for this queue" instead of "results unavailable", which implied one was still coming.
Full gate green: format, lint, typecheck, 742 tests / 54 suites, build.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads