diegosouzapw/OmniRoute · error · Error

Claude Web browser response exceeded the size limit

Error message

Claude Web browser response exceeded the size limit

What it means

Response-size guard inside the Playwright page.evaluate fetch in fetchClaudeWebPageResponse: the captured Claude Web response body (or its declared content-length) exceeded the maxBytes budget passed in the input. This protects the Node process from buffering an oversized page-context response and indicates an unexpectedly large (or malformed/looping) upstream payload.

Solutions

  1. Retry the request; transient oversized payloads from claude.ai usually clear on a fresh conversation turn
  2. If persistent, raise the executor's maxBytes budget for this capture after confirming memory headroom
  3. Inspect the captured headers for a mismatched content-length suggesting a non-SSE HTML error page being returned
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at open-sse/executors/claude-web/browserTransport.ts:274 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of diegosouzapw/OmniRoute@a179ffed5b (2026-08-25). Data as JSON: /api/errors/46a9148c7caabc2e. Report an issue: GitHub.

Appendix: source

Thrown at open-sse/executors/claude-web/browserTransport.ts:274

  };
}

export async function fetchClaudeWebPageResponse(
  page: Page,
  input: ClaudeWebBrowserFetchInput
): Promise<{ status: number; headers: Record<string, string>; body: Uint8Array }> {
  const captured = await page.evaluate(async ({ url, headers, body, maxBytes }) => {
    const response = await fetch(url, {
      method: "POST",
      headers,
      body,
      credentials: "include",
    });
    const responseHeaders = Object.fromEntries(response.headers.entries());
    const declaredLength = Number.parseInt(response.headers.get("content-length") ?? "", 10);
    if (Number.isFinite(declaredLength) && declaredLength > maxBytes) {
      await response.body?.cancel().catch(() => {});
      throw new Error("Claude Web browser response exceeded the size limit");
    }

    const reader = response.body?.getReader();
    const bodyChunks: string[] = [];
    let totalBytes = 0;
    const encodeBase64 = (bytes: Uint8Array): string => {
      let binary = "";
      const sliceSize = 32 * 1024;
      for (let offset = 0; offset < bytes.byteLength; offset += sliceSize) {
        binary += String.fromCharCode(...bytes.subarray(offset, offset + sliceSize));
      }
      return btoa(binary);
    };

    try {
      while (reader) {
        const { value, done } = await reader.read();
        if (done) break;

View on GitHub (pinned to a179ffed5b)