Skip to content

Altimate Base: 413 HTML error body shows generic message; no client-side header timeout #1255

Description

@anandgupta42

Summary

Two client-side bugs found during live-prod E2E of the v0.11.0-beta.2 release, both in the Altimate Base free-tier code path.

Bug 1 — 413 oversize error shows a generic message instead of the friendly one

FreeTier.describeRequestTooLarge (packages/opencode/src/altimate/free/client.ts) tries to JSON.parse the response body and returns undefined if parsing throws.

In production, oversized requests (roughly >1 MiB) are rejected by the gateway's edge proxy with a raw HTML error page, not a JSON body. JSON.parse throws on that HTML, the function returns undefined, and the user is shown a generic fallback error instead of the friendly "your request is too large — start a new session or shorten it" guidance that fires when the body is parseable JSON.

Expected: on any HTTP 413 from the Altimate Base provider, the user should see the friendly "request too large" message regardless of whether the response body is JSON or HTML.

Actual: only a parseable JSON body with the expected shape produces the friendly message; an HTML/unparseable body falls through to the generic error.

Bug 2 — Altimate Base provider has no client-side header timeout

The altimate-free provider loader (packages/opencode/src/provider/provider.ts) does not set a headerTimeout option, unlike the openai loader in the same file which sets one by default.

If the gateway hangs before sending response headers, a request through the Altimate Base provider has no client-side timeout and can hang indefinitely — the CLI never surfaces an error or times out on its own.

Expected: the Altimate Base provider should time out client-side (matching the existing OpenAI-loader default) if the gateway doesn't respond in time.

Actual: no timeout is configured, so a hung gateway request hangs the CLI.

How found

Both were found via live-prod end-to-end testing of the v0.11.0-beta.2 release.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions