":"acp-proxy failure","detail":"Error: upstream request failed: kind=connect-tim...

2026年10月10日 22:30 14.22 秒 success

错误信息

502 {"error":"acp-proxy failure","detail":"Error: upstream request failed: kind=connect-timeout code=UND_ERR_CONNECT_TIMEOUT message=fetch failed <- Connect Timeout Error (attempted address: <private-host>:443, timeout: 10000ms) url=https://<private-host>/v1/messages proxy=direct hint=TCP handshake never completed — upstream/proxy unreachable or blackholed; a bounded transparent replay may be attempted (BILI_REPLAY_RETRY_MAX)"}

AI 解决方案

🌐 错误翻译

原文:502 {"error":"acp-proxy failure","detail":"Error: upstream request failed: kind=connect-timeout code=UND_ERR_CONNECT_TIMEOUT message=fetch failed <- Connect Timeout Error (attempted address: <private-host>:443, timeout: 10000ms) url=https://<private-host>/v1/messages proxy=direct hint=TCP handshake never completed — upstream/proxy unreachable or blackholed; a bounded transparent replay may be attempted (BILI_REPLAY_RETRY_MAX)"}
译文:502 {"error":"acp-proxy故障","detail":"错误:上游请求失败:类型=连接超时 代码=UND_ERR_CONNECT_TIMEOUT 消息= fetch失败 <- 连接超时错误(尝试访问地址:<私有主机>:443,超时:10000ms) url=https://<私有主机>/v1/messages 代理=直连 提示= TCP握手从未完成 — 上游/代理不可达或被黑洞;可以尝试有限次数的透明重放(BILI_REPLAY_RETRY_MAX)"}

🎯 原因分析


  • 根本原因:客户端尝试连接上游服务(<private-host>:443)时发生连接超时,TCP握手未能完成

  • 具体场景:请求发送到了一个不可达或被网络黑盒过滤的私有主机地址,10秒内未建立TCP连接
  • 💡 解决方案


    检查并修复上游服务可用性或调整网络配置:
    // 1. 检查目标地址与端口是否正确
    const targetUrl = 'https://<private-host>/v1/messages';
    
    // 2. 增加超时时间(根据实际网络环境调整)
    const controller = new AbortController();
    const timeoutId = setTimeout(() => controller.abort(), 30000); // 延长至30秒
    
    try {
      const response = await fetch(targetUrl, {
        signal: controller.signal,
        proxy: 'direct' // 确认是否需要代理
      });
      clearTimeout(timeoutId);
    } catch (error) {
      clearTimeout(timeoutId);
      if (error.name === 'AbortError') {
        console.error('请求超时,请检查上游服务是否可达');
      }
    }
    

    🛡️ 预防措施


  • 健康检查机制:在请求前添加上游服务健康检查,避免对不可达服务的无效请求

  • 重试策略:实现有限次数自动重试(参考BILI_REPLAY_RETRY_MAX提示),避免一次性请求失败导致服务中断

  • 监控告警:使用网络监控工具(如Pingdom)实时监测上游服务连接状态,及时预警