From b88aac7f798e703358a25f87bd518d124ba88828 Mon Sep 17 00:00:00 2001 From: phamnazage-jpg Date: Fri, 29 May 2026 12:21:10 +0800 Subject: [PATCH] docs(routing): record managed 503 root cause --- docs/EXECUTION_BOARD.md | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/docs/EXECUTION_BOARD.md b/docs/EXECUTION_BOARD.md index 38d9a8f9..dcaa231d 100644 --- a/docs/EXECUTION_BOARD.md +++ b/docs/EXECUTION_BOARD.md @@ -475,6 +475,53 @@ - 插件侧 decision log 回写 - 以上链路均已真实命中 - 但该次 upstream 仍返回 `503`,因此当前收口应表述为“真实 managed key 供应路径已打通,真实上游可用性仍待继续压实” + - 2026-05-29 已完成该 `503` 的只读根因收敛 / `managed key vs gateway vs account test vs host logs` + - 目标样本仍使用上一轮已真实命中的 managed key: + - `subscription_user_id=proxy-managed-1780026133` + - `managed_key_fingerprint=sha256:f0fa3dec6e94348945431c9470c1faa8258c50fcee1adcb1904dac0fa42a15d6` + - `group_id=8` + - `group_name=GPT Shared 路由实验-subscription` + - 同一条 managed key 的宿主 gateway 对照结果: + - `GET /v1/models` 返回 `200` + - 返回模型集只包含 alias:`["gpt-5.4-asxs","gpt-5.4-mini-asxs"]` + - `POST /v1/chat/completions` with `model=gpt-5.4-asxs` 返回 `503` + - `POST /v1/chat/completions` with `model=gpt-5.4` 也返回 `503` + - 同一 group 对应账号状态: + - 仅命中 `account_id=9` + - `name=gpt-asxs-route-lab-01` + - `status=active` + - `schedulable=true` + - `group_ids=[8]` + - `credentials.base_url=https://api.asxs.top/v1` + - `credentials.model_mapping={"gpt-5.4-asxs":"gpt-5.4","gpt-5.4-mini-asxs":"gpt-5.4-mini"}` + - `GET /api/v1/admin/accounts/9/models` 返回 `200`,模型集包含 `gpt-5.4-asxs` / `gpt-5.4-mini-asxs` + - `POST /api/v1/admin/accounts/9/test` with `model_id=gpt-5.4` 返回 success + - `POST /api/v1/admin/accounts/9/test` with `model_id=gpt-5.4-asxs` 也返回 success + - 同一 group 对应 channel 状态: + - `channel_id=7` + - `name=GPT Shared - asxs-subscription` + - `restrict_models=true` + - `billing_model_source=channel_mapped` + - `model_mapping.openai={"gpt-5.4-asxs":"gpt-5.4","gpt-5.4-mini-asxs":"gpt-5.4-mini"}` + - `model_pricing[0].models=["gpt-5.4-asxs","gpt-5.4-mini-asxs"]` + - 真实宿主容器日志(`weishaw/sub2api:0.1.129` / container `f2f0490d4b7f`)已明确给出拦截原因: + - `channel pricing restriction blocked request` + - `openai_chat_completions.account_select_failed` + - `error=no available accounts supporting model: gpt-5.4-asxs (channel pricing restriction)` + - 对 `model=gpt-5.4` 也出现相同 `channel pricing restriction` + - 本轮判定: + - 这不是 managed key 失效:同一 key 的 `/v1/models` 已返回 `200` + - 这不是账号坏掉:`account_id=9` active/schedulable,且 direct `account test` 成功 + - 这不是 pack/provider 基础字段缺失:channel 上 `model_mapping + model_pricing + restrict_models + billing_model_source=channel_mapped` 都已存在 + - 当前 `503` 的直接根因是 **stock host `weishaw/sub2api:0.1.129` 在 gateway 选路阶段把该 shadow group 视为 `channel pricing restriction` 不可用** + - 工程决策: + - **优先修 route/provider 配置,不继续押注宿主兼容热修** + - 插件的 `logical_group/public_model` 仍可继续保留 alias / 路由抽象 + - 但宿主 `shadow_group` 不应继续承载 alias 模型名 + - 后续 shadow group 应改为只承载 canonical upstream model,例如: + - `gpt-5.4` + - `gpt-5.4-mini` + - alias/public model 的抽象只保留在插件 `logical_group -> route -> shadow_model` 这一层;不要再把 alias 下沉到 stock host 的 `channel_mapped + restrict_models` 组合里 - 2026-05-26 已把“最终用户 -> 公网域名 -> OpenClaw”这一跳补进正式验证口径: - 公网根地址当前统一为 `https://sub.tksea.top` - OpenClaw 本地 `MiniMax` 运行时故障已定位为 `pi-ai/openai-node` 未继承系统 `HTTP(S)_PROXY`,不是 allowlist 或模型名大小写问题