Request was aborted DOMException: Request was aborted at AiSdkToChunkAdapter.con...

2026年06月14日 16:55 25.90 秒 success

错误信息

AbortError Request was aborted DOMException: Request was aborted at AiSdkToChunkAdapter.convertAndEmitChunk (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-D3m2ez1i.js:350227:13) at AiSdkToChunkAdapter.readFullStream (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-D3m2ez1i.js:350024:10) at async AiSdkToChunkAdapter.processStream (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-D3m2ez1i.js:349986:31) at async AiProvider.modernCompletions (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-D3m2ez1i.js:353710:22) at async AiProvider.completions (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-D3m2ez1i.js:353629:17) at async fetchChatCompletion (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-D3m2ez1i.js:353976:2) at async transformMessagesAndFetch (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-D3m2ez1i.js:353903:3) at async fetchAndProcessAssistantResponseImpl (file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-D3m2ez1i.js:168349:3) at async file:///Applications/Cherry%20Studio.app/Contents/Resources/app.asar/out/renderer/assets/store-D3m2ez1i.js:168583:5

AI 解决方案

🌐 错误翻译


原文:DOMException: Request was aborted
译文:请求已中止

🎯 原因分析


这是一个 AbortError,其根本原因是网络请求被主动或意外中断。在您的案例中,错误发生在 Cherry Studio(一个基于 Electron 的 AI 聊天应用)的流式响应处理过程中 (AiSdkToChunkAdapter.readFullStream)。这意味着在 AI 模型生成回复的流式数据传输过程中,该请求被取消了。

可能的具体触发场景包括:

  • 用户主动中断:在 AI 回复生成过程中,您刷新了页面、关闭了聊天窗口或点击了“停止”按钮。

  • 网络问题:在请求进行中,网络连接不稳定或断开。

  • 超时:服务器或客户端设置了超时时间,请求因未在规定时间内完成而被自动终止。

  • 应用内部逻辑:Cherry Studio 应用内部的其他逻辑(例如,新请求覆盖了旧请求)触发了取消操作。
  • 💡 解决方案


    这是一个运行时环境的中断错误,通常不是代码逻辑 bug,而是外部事件导致的。因此,主要的解决方案围绕用户操作应用健壮性展开。

    • 用户侧检查

    • 确保网络连接稳定。
      在 AI 回复期间,避免进行刷新页面、关闭窗口等操作,等待回复完成或手动点击停止。

      • 开发者侧改进(如果您是该应用的开发者)

      • 在处理流式请求的代码中,应妥善处理 AbortError,避免其成为未捕获的异常导致控制台报错。可以在捕获到此错误后静默处理或提示用户。
            // 示例:在处理 fetch 或类似 API 时增加对 AbortError 的捕获
            try {
              const response = await fetch(url, { signal });
              // ... 处理流式响应
            } catch (error) {
              if (error.name === 'AbortError') {
                // 请求被主动取消,属于正常流程,无需向用户报错
                console.log('请求已中止');
              } else {
                // 处理其他类型的网络或服务器错误
                console.error('请求失败:', error);
              }
            }
            

        注:您的错误堆栈显示代码已打包为 .asar 文件,因此普通用户无法直接修改源代码。此建议面向应用维护者。

        🛡️ 预防措施


      • 用户:保持稳定的网络环境,并在使用流式 AI 服务时给予应用足够的时间完成请求。

      • 开发者

      • 在应用中实现清晰的请求状态管理,为用户提供明确的“进行中”状态提示和便捷的“取消”入口。
        为所有异步操作(尤其是网络请求)添加完备的错误处理逻辑,特别是对可预见的错误(如 AbortError)进行优雅降级。
        * 考虑为长时间运行的流式请求设置合理的客户端超时和重试机制(但需注意避免重复请求冲突)。