Invalid Token (request id: sha256:f24aa40ca8a1) 16:46:17+08:00 [diagnostic] lane...

2026年04月13日 16:46 processing

错误信息

16:46:11+08:00 [model-fallback] model fallback decision: decision=candidate_failed requested=dmxapi/glm-5.1-free candidate=dmxapi/glm-5.1-free reason=auth next=dmxapi/Qwen3.5-2B-free detail=HTTP 401 rix_api_error: Invalid Token (request id: sha256:f24aa40ca8a1) 16:46:17+08:00 [diagnostic] lane task error: lane=main durationMs=5913 error="FailoverError: No available auth profile for dmxapi (all in cooldown or unavailable)." 16:46:17+08:00 [diagnostic] lane task error: lane=session:agent:main:main durationMs=5916 error="FailoverError: No available auth profile for dmxapi (all in cooldown or unavailable)." 16:46:17+08:00 [ws] ⇄ res ✓ node.list 1309ms conn=1627f21b…4d73 id=260f4cfd…9e2f 16:46:17+08:00 [model-fallback] model fallback decision: decision=candidate_failed requested=dmxapi/glm-5.1-free candidate=dmxapi/Qwen3.5-2B-free reason=auth next=dmxapi/MiniMax-M2.7-free detail=No available auth profile for dmxapi (all in cooldown or unavailable). 16:46:18+08:00 [diagnostic] lane task error: lane=main durationMs=727 error="FailoverError: No available auth profile for dmxapi (all in cooldown or unavailable)." 16:46:18+08:00 [diagnostic] lane task error: lane=session:agent:main:main durationMs=730 error="FailoverError: No available auth profile for dmxapi (all in cooldown or unavailable)." 16:46:18+08:00 [model-fallback] model fallback decision: decision=candidate_failed requested=dmxapi/glm-5.1-free candidate=dmxapi/MiniMax-M2.7-free reason=auth next=none detail=No available auth profile for dmxapi (all in cooldown or unavailable). 16:46:18+08:00 Embedded agent failed before reply: All models failed (3): dmxapi/glm-5.1-free: HTTP 401 rix_api_error: Invalid Token (request id: 20260413164609890791028xo6SCFKY) (auth) | dmxapi/Qwen3.5-2B-free: No available auth profile for dmxapi (all in cooldown or unavailable). (auth) | dmxapi/MiniMax-M2.7-free: No available auth profile for dmxapi (all in cooldown or unavailable). (auth) | No available auth profile for dmxapi (all in cooldown or unavailable).

AI 解决方案

报错分析报告

1.错误翻译


原文:HTTP 401 rix_api_error: Invalid Token
译文:HTTP 401 rix_api错误:无效令牌

原文:FailoverError: No available auth profile for dmxapi (all in cooldown or unavailable)
译文:故障转移错误:dmxapi没有可用的认证配置文件(全部处于冷却状态或不可用)

2.原因分析


  • 根本原因:API调用认证失败(令牌无效+所有认证配置均不可用/冷却)。

  • 发生位置:调用dmxapi系列模型(glm-5.1-free/Qwen3.5-2B-free/MiniMax-M2.7-free)的认证环节。
  • 3.解决方案


    import requests
    import time
    from dotenv import load_dotenv
    import os
    
    load_dotenv()  # 加载.env文件中的密钥
    API_KEY = os.getenv("DMXAPI_KEY")  # 从环境变量取有效密钥
    BASE_URL = "https://api.dmxapi.com/v1"
    
    def call_dmx_model(model: str, prompt: str, max_retry=3):
        headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
        payload = {"model": model, "prompt": prompt}
        
        for attempt in range(max_retry):
            try:
                resp = requests.post(f"{BASE_URL}/invoke", json=payload, headers=headers, timeout=10)
                resp.raise_for_status()
                return resp.json()
            except requests.exceptions.HTTPError as e:
                if e.response.status_code == 401:
                    raise ValueError("❌ 无效令牌:请检查DMXAPI_KEY是否正确/过期") from e
                elif "cooldown" in str(e):
                    wait = 2 ** attempt  # 指数退避
                    print(f"⏳ 认证冷却中,{wait}秒后重试...")
                    time.sleep(wait)
                    continue
                else:
                    raise RuntimeError(f"API错误:{e}") from e
        raise RuntimeError("❌ 所有重试失败:认证配置仍不可用")
    
    # 使用示例
    try:
        result = call_dmx_model("dmxapi/glm-5.1-free", "Hello")
        print(result)
    except Exception as e:
        print(f"调用失败:{e}")
    

    4. 预防措施


  • 密钥管理:用.env文件+dotenv库存储密钥,定期轮换(推荐工具:HashiCorp Vault);

  • 错误重试:对冷却错误加指数退避重试(如2^attempt秒),避免频繁请求;

  • 监控告警:用Sentry/Prometheus监控401错误,及时收到无效令牌通知。
  • ---
    :需先替换DMXAPI_KEY为有效令牌(从DMXAPI控制台获取),并确保模型名称正确。