Repository navigation
chore(reliability): add recover() to non-fan-out fire-and-forget goroutines (auth, rate-limiter, GCP token-exchange) #672
Copy link
Copy link
Closed
Labels
effort/xsTrivial / one-linerTrivial / one-linerimpact/internalTeam-internal onlyTeam-internal onlypr-createdA PR has been opened for this issue (dedup guard for the auto-PR loop)A PR has been opened for this issue (dedup guard for the auto-PR loop)priority/p3Polish / idea / may never shipPolish / idea / may never shipseverity/lowMinor harmMinor harmtriagedItem has been triagedItem has been triagedtype/choreMaintenance / non-user-visibleMaintenance / non-user-visibleurgency/eventuallyNo deadlineNo deadline
Description
Activity
- addedtriagedItem has been triagedItem has been triagedpriority/p3Polish / idea / may never shipPolish / idea / may never shipseverity/lowMinor harmMinor harmurgency/eventuallyNo deadlineNo deadlineimpact/internalTeam-internal onlyTeam-internal onlyeffort/xsTrivial / one-linerTrivial / one-linertype/choreMaintenance / non-user-visibleMaintenance / non-user-visible
on May 22, 2026 - added a commit that references this issue
on Jun 5, 2026 - addedpr-createdA PR has been opened for this issue (dedup guard for the auto-PR loop)A PR has been opened for this issue (dedup guard for the auto-PR loop)
on Jun 7, 2026 - added 5 commits that reference this issue
on Jun 8, 2026 - added a commit that references this issue
on Jun 19, 2026 4 remaining items
- added 4 commits that reference this issue
on Jul 5, 2026 - added 9 commits that reference this issue
on Jul 17, 2026 - added a commit that references this issue
on Sep 27, 2026
Metadata
Metadata
Assignees
Labels
effort/xsTrivial / one-linerTrivial / one-linerimpact/internalTeam-internal onlyTeam-internal onlypr-createdA PR has been opened for this issue (dedup guard for the auto-PR loop)A PR has been opened for this issue (dedup guard for the auto-PR loop)priority/p3Polish / idea / may never shipPolish / idea / may never shipseverity/lowMinor harmMinor harmtriagedItem has been triagedItem has been triagedtype/choreMaintenance / non-user-visibleMaintenance / non-user-visibleurgency/eventuallyNo deadlineNo deadline
Summary
The fan-out helper just got
recover()via #669 / PR #670. Audit of all other goroutine starts surfaced 3 more fire-and-forget goroutines without recover():internal/auth/service_apikeys.go:279UpdateLastUsedafter API-key authinternal/api/db_rate_limiter.go:137cleanup()of expired rate-limit entriesinternal/api/handler_accounts.go:811ts.Token()with timeout channelEach is LOW likelihood (small DB UPDATE / cleanup / a single library call), but a panic kills the entire Lambda process. Cheap insurance.
Pattern to apply (matches existing
internal/api/ri_utilization_cache.go:153):Acceptance criteria
logging.Warnf(these are non-critical paths; Warn is right level)ri_utilization_cache_test.gois sufficient as a precedent)Cross-references