• v1.13.2 b609a8c499

    v1.13.2 — stop logging network blips as unfixable mapping bugs
    All checks were successful
    CI / build-and-test (push) Successful in 1m45s
    CI / docker-build (push) Successful in 25s
    Stable

    joeyr released this 2026-08-25 21:04:13 -05:00 | 65 commits to main since this release

    Fixed

    • A passing network blip was logged as an unfixable bug. pollSummoner
      sorts poll failures with err instanceof TypeError, on the reasoning that a
      TypeError can only come from our own mapper reading a field Riot omitted. But
      fetch reports every transport failure as a bare TypeError: fetch failed,
      so DNS hiccups, resets and timeouts all landed in that branch and were logged
      at ERROR as Bug mapping Riot spectator response — game will NOT be announced. Both claims were false: nothing was wrong with the mapper, and the
      next cycle announced the game normally. Production logs show the contradiction
      a millisecond apart — Riot API network error immediately followed by
      Bug mapping Riot spectator response for the same failure.
    • RiotApiClientBase now wraps transport failures in a new exported
      RiotNetworkError, preserving the original as cause. It is not a
      TypeError, so it falls to the transient branch and a genuine mapping bug
      still reaches the error branch — which is what the instanceof TypeError test
      meant all along. That test was added to stop mapping bugs hiding under
      "transient network error" (the missing-perks crash on Classic games); this
      is the same misfiling in reverse, and both directions are now pinned by tests.

    Behaviour is unchanged — both branches already returned 'skipped', counted
    the summoner in the cycle summary, and retried next cycle. This is log accuracy
    only, which matters because these logs are the instrument used to diagnose the
    shared-key 429s in 1.13.0.

    Downloads