RouteMux Docs

限流与错误

理解限流策略、重试,以及网关错误契约。

RouteMux 在上游供应商限制之上施加自己的限流策略。该策略管控每账号每分钟请求数和并发流数, 并按请求逐次解析 —— 先看密钥的策略,再看账号的策略,最后回退平台默认。

处理 429

超过限制时,网关按入口协议的错误格式返回 LIMIT_RATE_EXCEEDED,HTTP 429

{
  "error": {
    "code": "LIMIT_RATE_EXCEEDED",
    "message": "请求触发了 RouteMux 的频率、并发或策略限制。请遵守 Retry-After,并使用带抖动的指数退避重试。",
    "reference": "RMX-LIMIT-4001",
    "documentation_url": "https://routemux.com/zh/docs/errors#rmx-limit-4001",
    "request_id": "req_01K0EXAMPLELIMIT",
    "retry": { "retryable": true, "strategy": "BACKOFF" },
    "billing": { "status": "NOT_BILLED" }
  }
}

退避后重试

429 当作瞬态。用带抖动的指数退避重试,而不是猛打端点。如果你持续撞限, 请联系客服申请更高的策略档位。

各协议的错误格式

错误按你调用的家族格式返回,所以你现有的 SDK 错误处理照常工作:

  • /v1/*/responses —— OpenAI 错误格式。
  • /anthropic/*/v1/messages —— Anthropic 错误格式。
  • /vertex-ai/* —— Gemini / Google 错误格式。

网关错误参考

错误码HTTP含义
AUTH_API_KEY_REQUIRED401没有发送 API 密钥。
AUTH_INVALID_API_KEY401密钥不存在或无法验证。
AUTH_AMBIGUOUS_API_KEY400多个密钥头发送了不同凭据。
AUTH_API_KEY_INACTIVE403密钥存在但已停用。
AUTH_API_KEY_EXPIRED403密钥已过期。
LIMIT_API_KEY_QUOTA_EXHAUSTED429密钥达到配置的 30 天额度。
LIMIT_API_KEY_DAILY_QUOTA_EXHAUSTED429密钥达到配置的每日额度,在该密钥所配时区的 00:00 重置。
AUTH_ACCOUNT_SUSPENDED403所属账号不能发起请求。
BILLING_INSUFFICIENT_CREDITS422钱包余额不足。
LIMIT_RATE_EXCEEDED429命中 RPM、并发或策略限制。请遵守 Retry-After
MODEL_NOT_FOUND404目录中无此模型。
MODEL_PROTOCOL_UNSUPPORTED400模型未开放该协议。
MODEL_NOT_PROVISIONED503模型尚未开通。原样重试无用。
MODEL_BUSY503模型当前负载已满。可重试;请遵守 Retry-After
MODEL_UNAVAILABLE503所选模型无法完成本次请求。

幂等

X-Idempotency-Key 头,让请求可安全重试:

curl https://api.routemux.com/v1/chat/completions \
  -H "Authorization: Bearer $ROUTEMUX_API_KEY" \
  -H "X-Idempotency-Key: idem_2026_06_19_001" \
  -H "Content-Type: application/json" \
  -d '{ "model": "openai/gpt-4o-mini", "messages": [{ "role": "user", "content": "hi" }] }'
  • 如果同一键的请求仍在途中,你会得到 IDEMPOTENCY_IN_PROGRESS(409),且不会再次调用上游。
  • 如果它已经完成,你会得到 IDEMPOTENCY_REPLAY_UNAVAILABLE(409)—— 请求不会被重复扣费, 但原始响应体不会被重放。

幂等键按账号范围生效,防止重试与对账造成重复扣费。

On this page