错误信息: Failed to fetch 堆栈信息: AI_ProviderSpecificError: Failed to fetch at AiSdkTo...

2026年03月31日 13:22 processing

错误信息

错误名称: AI_ProviderSpecificError 错误信息: Failed to fetch 堆栈信息: AI_ProviderSpecificError: Failed to fetch at AiSdkToChunkAdapter.convertAndEmitChunk (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:322991:64) at AiSdkToChunkAdapter.readFullStream (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:322782:10) at async AiSdkToChunkAdapter.processStream (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:322745:32) at async ModernAiProvider.modernCompletions (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:325482:22) at async ModernAiProvider._completionsOrImageGeneration (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:325399:10) at async ModernAiProvider.completions (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:325382:17) at async fetchChatCompletion (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:325697:2) at async transformMessagesAndFetch (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:325633:3) at async fetchAndProcessAssistantResponseImpl (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:118866:3) at async file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-CA-rHPlI.js:119161:4 错误原因: {}

AI 解决方案

##报错分析

1. 错误翻译


原文:Failed to fetch
译文:获取失败

2. 原因分析


  • 根本原因:网络请求未能成功获取数据(Fetch API返回失败)。

  • 发生位置AiSdkToChunkAdapter.convertAndEmitChunk方法(store-CA-rHPlI.js:322991:64),上下文是该组件转换AI流数据时发起的请求中断。
  • 3.解决方案


    优先排查网络连通性与API端点,以下是带重试的修复示例(JavaScript):
    // 带指数退避重试的Fetch封装
    async function fetchWithRetry(url, options = {}, retries = 3) {
      try {
        const res = await fetch(url, options);
        if (!res.ok) throw new Error(`HTTP ${res.status}`);
        return res;
      } catch (err) {
        if (retries > 0) {
          await new Promise(r => setTimeout(r, 1000 * (4 - retries))); // 退避延迟
          return fetchWithRetry(url, options, retries - 1);
        }
        throw err;
      }
    }
    
    // 替换原请求(示例)
    const streamRes = await fetchWithRetry(yourApiUrl, { method: 'POST', body: JSON.stringify(data) });
    

    4. 预防措施


  • 最佳实践1:为网络请求添加指数退避重试机制,应对临时抖动。

  • 最佳实践2:请求前用navigator.onLine(浏览器)或服务端探活检查网络状态。

  • 推荐工具axios-retry插件(简化重试)、浏览器DevToolsNetwork面板(调试请求)。