mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
feat: improve error messaging for stream termination errors from provider (#10548)
This commit is contained in:
parent
7b771a209e
commit
b7bd859473
19 changed files with 38 additions and 19 deletions
|
|
@ -3257,9 +3257,10 @@ export class Task extends EventEmitter<TaskEvents> implements TaskLike {
|
|||
// Determine cancellation reason
|
||||
const cancelReason: ClineApiReqCancelReason = this.abort ? "user_cancelled" : "streaming_failed"
|
||||
|
||||
const rawErrorMessage = error.message ?? JSON.stringify(serializeError(error), null, 2)
|
||||
const streamingFailedMessage = this.abort
|
||||
? undefined
|
||||
: (error.message ?? JSON.stringify(serializeError(error), null, 2))
|
||||
: `${t("common:interruption.streamTerminatedByProvider")}: ${rawErrorMessage}`
|
||||
|
||||
// Clean up partial state
|
||||
await abortStream(cancelReason, streamingFailedMessage)
|
||||
|
|
|
|||
3
src/i18n/locales/ca/common.json
generated
3
src/i18n/locales/ca/common.json
generated
|
|
@ -176,7 +176,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Resposta interrompuda per l'usuari",
|
||||
"responseInterruptedByApiError": "Resposta interrompuda per error d'API"
|
||||
"responseInterruptedByApiError": "Resposta interrompuda per error d'API",
|
||||
"streamTerminatedByProvider": "El proveïdor ha finalitzat la sol·licitud"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Introdueix una ruta d'emmagatzematge personalitzada per a l'historial de converses o deixa-ho buit per utilitzar la ubicació predeterminada",
|
||||
|
|
|
|||
3
src/i18n/locales/de/common.json
generated
3
src/i18n/locales/de/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Antwort vom Benutzer unterbrochen",
|
||||
"responseInterruptedByApiError": "Antwort durch API-Fehler unterbrochen"
|
||||
"responseInterruptedByApiError": "Antwort durch API-Fehler unterbrochen",
|
||||
"streamTerminatedByProvider": "Der Anbieter hat die Anfrage beendet"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Gib den benutzerdefinierten Speicherpfad für den Gesprächsverlauf ein, leer lassen für Standardspeicherort",
|
||||
|
|
|
|||
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Response interrupted by user",
|
||||
"responseInterruptedByApiError": "Response interrupted by API error"
|
||||
"responseInterruptedByApiError": "Response interrupted by API error",
|
||||
"streamTerminatedByProvider": "Provider ended the request"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Enter custom conversation history storage path, leave empty to use default location",
|
||||
|
|
|
|||
3
src/i18n/locales/es/common.json
generated
3
src/i18n/locales/es/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Respuesta interrumpida por el usuario",
|
||||
"responseInterruptedByApiError": "Respuesta interrumpida por error de API"
|
||||
"responseInterruptedByApiError": "Respuesta interrumpida por error de API",
|
||||
"streamTerminatedByProvider": "El proveedor finalizó la solicitud"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Ingresa la ruta de almacenamiento personalizada para el historial de conversaciones, déjala vacía para usar la ubicación predeterminada",
|
||||
|
|
|
|||
3
src/i18n/locales/fr/common.json
generated
3
src/i18n/locales/fr/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Réponse interrompue par l'utilisateur",
|
||||
"responseInterruptedByApiError": "Réponse interrompue par une erreur d'API"
|
||||
"responseInterruptedByApiError": "Réponse interrompue par une erreur d'API",
|
||||
"streamTerminatedByProvider": "Le fournisseur a terminé la demande"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Entrez le chemin de stockage personnalisé pour l'historique des conversations, laissez vide pour utiliser l'emplacement par défaut",
|
||||
|
|
|
|||
3
src/i18n/locales/hi/common.json
generated
3
src/i18n/locales/hi/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "उपयोगकर्ता द्वारा प्रतिक्रिया बाधित",
|
||||
"responseInterruptedByApiError": "API त्रुटि द्वारा प्रतिक्रिया बाधित"
|
||||
"responseInterruptedByApiError": "API त्रुटि द्वारा प्रतिक्रिया बाधित",
|
||||
"streamTerminatedByProvider": "प्रदाता ने अनुरोध समाप्त किया"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "वार्तालाप इतिहास के लिए कस्टम स्टोरेज पाथ दर्ज करें, डिफ़ॉल्ट स्थान का उपयोग करने के लिए खाली छोड़ दें",
|
||||
|
|
|
|||
3
src/i18n/locales/id/common.json
generated
3
src/i18n/locales/id/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Respons diinterupsi oleh pengguna",
|
||||
"responseInterruptedByApiError": "Respons diinterupsi oleh error API"
|
||||
"responseInterruptedByApiError": "Respons diinterupsi oleh error API",
|
||||
"streamTerminatedByProvider": "Penyedia mengakhiri permintaan"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Masukkan path penyimpanan riwayat percakapan kustom, biarkan kosong untuk menggunakan lokasi default",
|
||||
|
|
|
|||
3
src/i18n/locales/it/common.json
generated
3
src/i18n/locales/it/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Risposta interrotta dall'utente",
|
||||
"responseInterruptedByApiError": "Risposta interrotta da errore API"
|
||||
"responseInterruptedByApiError": "Risposta interrotta da errore API",
|
||||
"streamTerminatedByProvider": "Il provider ha terminato la richiesta"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Inserisci il percorso di archiviazione personalizzato per la cronologia delle conversazioni, lascia vuoto per utilizzare la posizione predefinita",
|
||||
|
|
|
|||
3
src/i18n/locales/ja/common.json
generated
3
src/i18n/locales/ja/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "ユーザーによって応答が中断されました",
|
||||
"responseInterruptedByApiError": "APIエラーによって応答が中断されました"
|
||||
"responseInterruptedByApiError": "APIエラーによって応答が中断されました",
|
||||
"streamTerminatedByProvider": "プロバイダーがリクエストを終了しました"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "会話履歴のカスタムストレージパスを入力してください。デフォルトの場所を使用する場合は空のままにしてください",
|
||||
|
|
|
|||
3
src/i18n/locales/ko/common.json
generated
3
src/i18n/locales/ko/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "사용자에 의해 응답이 중단됨",
|
||||
"responseInterruptedByApiError": "API 오류로 인해 응답이 중단됨"
|
||||
"responseInterruptedByApiError": "API 오류로 인해 응답이 중단됨",
|
||||
"streamTerminatedByProvider": "제공자가 요청을 종료함"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "대화 내역을 위한 사용자 지정 저장 경로를 입력하세요. 기본 위치를 사용하려면 비워두세요",
|
||||
|
|
|
|||
3
src/i18n/locales/nl/common.json
generated
3
src/i18n/locales/nl/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Reactie onderbroken door gebruiker",
|
||||
"responseInterruptedByApiError": "Reactie onderbroken door API-fout"
|
||||
"responseInterruptedByApiError": "Reactie onderbroken door API-fout",
|
||||
"streamTerminatedByProvider": "Provider heeft het verzoek beëindigd"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Voer een aangepast opslagpad voor gespreksgeschiedenis in, laat leeg voor standaardlocatie",
|
||||
|
|
|
|||
3
src/i18n/locales/pl/common.json
generated
3
src/i18n/locales/pl/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Odpowiedź przerwana przez użytkownika",
|
||||
"responseInterruptedByApiError": "Odpowiedź przerwana przez błąd API"
|
||||
"responseInterruptedByApiError": "Odpowiedź przerwana przez błąd API",
|
||||
"streamTerminatedByProvider": "Dostawca zakończył żądanie"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Wprowadź niestandardową ścieżkę przechowywania dla historii konwersacji lub pozostaw puste, aby użyć lokalizacji domyślnej",
|
||||
|
|
|
|||
3
src/i18n/locales/pt-BR/common.json
generated
3
src/i18n/locales/pt-BR/common.json
generated
|
|
@ -176,7 +176,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Resposta interrompida pelo usuário",
|
||||
"responseInterruptedByApiError": "Resposta interrompida por erro da API"
|
||||
"responseInterruptedByApiError": "Resposta interrompida por erro da API",
|
||||
"streamTerminatedByProvider": "Provedor encerrou a solicitação"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Digite o caminho de armazenamento personalizado para o histórico de conversas, deixe em branco para usar o local padrão",
|
||||
|
|
|
|||
3
src/i18n/locales/ru/common.json
generated
3
src/i18n/locales/ru/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Ответ прерван пользователем",
|
||||
"responseInterruptedByApiError": "Ответ прерван ошибкой API"
|
||||
"responseInterruptedByApiError": "Ответ прерван ошибкой API",
|
||||
"streamTerminatedByProvider": "Провайдер завершил запрос"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Введите пользовательский путь хранения истории разговоров, оставьте пустым для использования расположения по умолчанию",
|
||||
|
|
|
|||
3
src/i18n/locales/tr/common.json
generated
3
src/i18n/locales/tr/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Yanıt kullanıcı tarafından kesildi",
|
||||
"responseInterruptedByApiError": "Yanıt API hatası nedeniyle kesildi"
|
||||
"responseInterruptedByApiError": "Yanıt API hatası nedeniyle kesildi",
|
||||
"streamTerminatedByProvider": "Sağlayıcı isteği sonlandırdı"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Konuşma geçmişi için özel depolama yolunu girin, varsayılan konumu kullanmak için boş bırakın",
|
||||
|
|
|
|||
3
src/i18n/locales/vi/common.json
generated
3
src/i18n/locales/vi/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "Phản hồi bị gián đoạn bởi người dùng",
|
||||
"responseInterruptedByApiError": "Phản hồi bị gián đoạn bởi lỗi API"
|
||||
"responseInterruptedByApiError": "Phản hồi bị gián đoạn bởi lỗi API",
|
||||
"streamTerminatedByProvider": "Nhà cung cấp đã kết thúc yêu cầu"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "Nhập đường dẫn lưu trữ tùy chỉnh cho lịch sử hội thoại, để trống để sử dụng vị trí mặc định",
|
||||
|
|
|
|||
3
src/i18n/locales/zh-CN/common.json
generated
3
src/i18n/locales/zh-CN/common.json
generated
|
|
@ -177,7 +177,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "响应被用户中断",
|
||||
"responseInterruptedByApiError": "响应被 API 错误中断"
|
||||
"responseInterruptedByApiError": "响应被 API 错误中断",
|
||||
"streamTerminatedByProvider": "提供方终止了请求"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "输入自定义会话历史存储路径,留空以使用默认位置",
|
||||
|
|
|
|||
3
src/i18n/locales/zh-TW/common.json
generated
3
src/i18n/locales/zh-TW/common.json
generated
|
|
@ -172,7 +172,8 @@
|
|||
},
|
||||
"interruption": {
|
||||
"responseInterruptedByUser": "回應被使用者中斷",
|
||||
"responseInterruptedByApiError": "回應被 API 錯誤中斷"
|
||||
"responseInterruptedByApiError": "回應被 API 錯誤中斷",
|
||||
"streamTerminatedByProvider": "提供方終止了請求"
|
||||
},
|
||||
"storage": {
|
||||
"prompt_custom_path": "輸入自訂會話歷史儲存路徑,留空以使用預設位置",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue