Repair HTTP/2 GOAWAY Retry Bugs

    by Mariusz Wrzeszczynski

    2

    Repair HTTP/2 GOAWAY drain bugs, stale pool reuse, unsafe stream retries, one-shot body replay, unknown outcomes, and replacement-connection herds.

    Secure checkout via Stripe

    0 installsSecurity scanned

    Works with the AI tools you already use

    CClaude CodeCCursorCCodex CLIGGitHub CopilotGGemini CLI+17 more

    See it in action

    You say

    Our Node/TypeScript API uses an HTTP/2 client pool to call an internal service. During rolling deploys the server sends GOAWAY. Our pool keeps the connection eligible for new requests until it actually closes, and the retry wrapper retries every failed request once on a fresh connection. We have concurrent GETs plus some POSTs with streaming bodies. Repair locally with an HTTP/2 test server that sends GOAWAY at controlled stream IDs. Do not call production, assume POSTs are idempotent, or buffer unlimited request bodies.

    Your agent does

    GOAWAY drain bug found. The pool keeps a draining session eligible for new streams and the retry wrapper ignores stream outcome, body replayability, and operation safety. The repair adds DRAINING state, stream-aware classification, bounded replacement creation, and deterministic GOAWAY tests. POST idempotency remains unverified.

    What you get

    Prevent duplicate requests by tracking last-processed stream IDs during GOAWAY.Stop connection pools from reusing draining HTTP/2 connections.Implement safe request body replayability checks for failed streams.Create deterministic test fixtures for graceful connection shutdowns.

    About this skill

    The problem

    HTTP/2 connection rotation and graceful drains often trigger race conditions that cause dropped requests or dangerous duplicate retries. Standard retry logic frequently fails to distinguish between streams the server definitely ignored and those with unknown processing outcomes during a GOAWAY event.

    What it does

    • Identifies and repairs repository-level HTTP/2 transport wrappers to handle GOAWAY frames correctly.
    • Prevents connection pools from assigning new streams to draining connections.
    • Implements stream-aware retry classification based on the peer's last-processed stream ID.
    • Enforces body replayability checks and idempotency safety during connection failovers.
    • Generates deterministic local HTTP/2 test fixtures to validate drain semantics without production traffic.

    Frameworks & tools

    Works with HTTP/2 client libraries, custom transports, and connection pool implementations. Requires standard shell tools for local testing and file editing.

    Why this beats prompting it yourself

    Generic LLM prompts often suggest blindly retrying failed requests, which leads to double-processing and data corruption. This skill follows a strict protocol to isolate transport-level retryability from application-level operation safety, ensuring your fix handles edge cases like concurrent stream herds and unknown outcomes.

    Use cases

    • Fixing request failures during rolling deployments or load balancer connection rotation.
    • Stopping retry storms triggered by frequent GOAWAY events in high-concurrency environments.
    • Adding observability to track connection drain state and stream-level retry success rates.
    • Validating client behavior against specific last-stream ID boundaries in local CI.

    Known limitations

    Cannot capture production traffic or invent provider-side idempotency guarantees. Local tests may not perfectly replicate the behavior of specific production intermediaries or hardware proxies.

    How to install

    Drop the file into your AI Agent. Works with Claude, Cursor, ChatGPT, and 20+ more.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    30-day refund

    Not a fit? Get your money back

    Trust & safety

    Security scanned

    Verified clean today

    Listedtoday

    Frequently Asked Questions

    Popular in API Development