Skip to content

Proxy mode causes 500 "request body tampered" error with upstream providers enforcing strict CLI fingerprinting #1875

@seehowthehunt

Description

@seehowthehunt

Self Checks / 自检

CC Switch Version / 版本号

v3.12.3

Operating System / 操作系统

Windows

Related App / 涉及应用

Claude Code

Steps to Reproduce / 重现步骤

When proxy mode is enabled in cc-switch, running the claude CLI from a standard system terminal results in a 500 error from certain upstream API providers. However, running it via the cc-switch "open terminal" button works perfectly under the exact same proxy settings.
Steps:

  1. Enable cc-switch proxy mode.
  2. Open a regular system terminal (e.g., standard PowerShell, CMD, or Git Bash) — do not use the cc-switch "open terminal" button.
  3. Run claude and send a prompt.

Expected Behavior / 期望行为

The request succeeds normally and Claude responds.

Actual Behavior / 实际行为

Repeatedly throws the following 500 error:
500 {"error":{"type":"request_fail","upstream_error":{"error":{"message":"您的请求体疑似被篡改,请使用我们的官方分发平台。(Your request body appears to have been tampered with. Please use our official distribution platform.) (request_ori_id: ca3d10e3-d3ab-4fc2-9dbf-b6e31688de07) (request id: 202604040134081245928442FNadTjQ)","type":"<nil>"},"type":"error"}},"type":"error"}

Additional Context / 补充信息

Isolation tests:

  • Disabling proxy mode → Works fine.
  • Using the cc-switch "open terminal" button (with proxy mode ON) → Works fine.
  • Using standard API endpoints (like DeepSeek) with proxy mode ON → Works fine. The issue only occurs with specific upstream gateways (like Cubence and Packy).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions