mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-07 16:18:29 +08:00
上游返回 400(invalid_function_parameters、missing_required_parameter 等)时, `/v1/responses` 原生路径把它包成 `502 upstream_error / "Upstream request failed"`, 真实的 message/code/param 全部丢弃。 502 属于可重试类,下游网关会把这个永远不会成功的请求反复重放(issue #5479 实测 30 个失败请求被放大成 60 次上游调用),客户端也拿不到「哪个字段非法」的线索。 同一个 service 上的兄弟路径早已做对: - `handleCompatErrorResponse`(ChatCompletions / Anthropic)回真实状态码 + invalid_request_error + 真实 message; - `/v1/images/generations` 还额外透传 code/param。 原生 Responses 是唯一漏掉的一条,本次对齐。 改动只放行 400:走到该分支说明 `shouldFailoverOpenAIUpstreamResponse` 已判定这个 400 不可 failover,即 server_is_overloaded / at capacity 这类可重试的 400 不会到达。 401/402/403(运营方凭据问题)、404/405(可能是 base_url 配错)、429 一律维持原状。 Fixes #5479