Skip to content

fix(client): clear serverInfoPromise on rejection to allow retry#84

Merged
zeevdr merged 1 commit into
mainfrom
fix/server-info-promise-poison
May 24, 2026
Merged

fix(client): clear serverInfoPromise on rejection to allow retry#84
zeevdr merged 1 commit into
mainfrom
fix/server-info-promise-poison

Conversation

@zeevdr
Copy link
Copy Markdown
Member

@zeevdr zeevdr commented May 24, 2026

Summary

  • Prevents serverInfoPromise from being poisoned on first failure — previously, a rejected promise was cached forever, making the client permanently broken after any transient error.
  • The .catch handler now clears serverInfoPromise on rejection so subsequent callers get a fresh attempt.

Test plan

  • Existing cache-hit test still passes (one call, same object returned)
  • New test: first call fails, promise clears, second call succeeds and hits the server again
  • All 186 tests pass

Closes #53

The cached promise was never cleared on failure, so every subsequent
call received the same rejected promise forever. The .catch handler now
resets serverInfoPromise to undefined on rejection, letting callers
retry successfully.

Closes #53

Co-Authored-By: Claude <noreply@anthropic.com>
@zeevdr zeevdr added this to the Beta Readiness milestone May 24, 2026
@zeevdr zeevdr added size: S Quick win — a few hours or less priority: P1 Current milestone work labels May 24, 2026
@zeevdr zeevdr enabled auto-merge (squash) May 24, 2026 12:29
@codecov
Copy link
Copy Markdown

codecov Bot commented May 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@zeevdr zeevdr merged commit 76c10e4 into main May 24, 2026
14 checks passed
@zeevdr zeevdr deleted the fix/server-info-promise-poison branch May 24, 2026 12:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: P1 Current milestone work size: S Quick win — a few hours or less

Projects

None yet

Development

Successfully merging this pull request may close these issues.

serverInfoPromise poisoned forever on first failure

1 participant