Skip to content

fix(request): keep response headers and body out of errors - #261

Open
stickerdaniel wants to merge 1 commit into
evex-dev:mainfrom
stickerdaniel:fix/request-error-headers
Open

stickerdaniel wants to merge 1 commit into
evex-dev:mainfrom
stickerdaniel:fix/request-error-headers

Conversation

@stickerdaniel

Copy link
Copy Markdown

Description

A response that fails to parse as Thrift, such as a gateway error page, threw an error with every response header and the body as hex. One of those headers is x-line-next-access, the next access token. Callers log and print error messages, and the CLI copies message and stack into its JSON errors and MCP tool output.

The parse error now names the status, method and body length: Request internal failed: status=503 method=getProfile bodyLength=36. The status=<code> text that the QR and PIN polls match on stays.

The object ID mismatch in uploadMediaByE2EE put every response header into its message and data. It now carries { objId, previewObjId }.

Checklist

  • Run tests (pnpm run build, pnpm run check, pnpm test, pnpm run test:scripts; new tests in base/request/mod.test.ts and base/obs/upload_e2ee.test.ts fail when either leak returns)
  • Add jsdoc (optional)
  • Test in your environment (fake responses only, no live LINE request)

Implemented with Claude Opus 5.5 (xhigh) and reviewed with ChatGPT (Pro) in Claude Code via T3 Code.

A response that failed to parse as Thrift threw an error naming every
response header and the body as hex. An object ID mismatch in
uploadMediaByE2EE put every response header into its message and data.
Those headers include x-line-next-access, the next access token, and
callers log and print error messages.

The parse error now names the status, method and body length. The
object ID mismatch error names both object IDs.
Copilot AI balanced review requested due to automatic review settings November 5, 2026 01:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

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.

2 participants