Skip to content

test(smoketests): log why concurrent HTTP/2 requests were rejected - #847

Draft
ross-rl wants to merge 1 commit into
mainfrom
ross/verify-http2-log-rejections
Draft

ross-rl wants to merge 1 commit into
mainfrom
ross/verify-http2-log-rejections

Conversation

@ross-rl

@ross-rl ross-rl commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

Description

The HTTP/2 verification script (tests/smoketests/scripts/verify-http2.mjs) fires 25 concurrent devboxes.list requests and requires them all to succeed. When some fail, it only prints a count, for example FAIL: h2: 25 concurrent requests all resolved (19/25), with no reason.

It now prints each distinct rejection reason once with a count: error type, HTTP status, error code and message. For example:

FAIL: h2: 25 concurrent requests all resolved (19/25)
  rejected x6: RateLimitError 429 Rate limit exceeded

No headers or credentials are printed. Prettier also rewrapped the existing Promise.allSettled line.

Motivation

This check failed during a runloop release-candidate test on dev (runloopai/runloop run 36481903233) with 6 of 25 requests rejected, and nothing in the log said why: rate limiting, HTTP/2 stream limits or a transient API error. Next time the log will say.

Testing

  • node --check passes, and the file is Prettier-clean.
  • I checked the grouping logic with simulated rejections (two 429s and one HTTP/2 stream error print as two lines with counts).

🤖 Generated with Claude Code

The HTTP/2 verification counted rejected concurrent requests without saying
why, so a failure like "25 concurrent requests all resolved (19/25)" gave no
clue whether it was rate limiting, a stream error or something else. Each
distinct rejection reason (error type, HTTP status, error code, message) is
now printed once with a count.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant