fix: handle internal rate limiting message to prevent unknown error display

- Add detection for internal rate limiting messages in ChatRow.tsx
- Messages starting with "rate limiting" are now shown with a friendly
  informational message instead of the "unknown API error" fallback
- Added internalRateLimit localization key to all 18 locale files

Fixes #10043
This commit is contained in:
Roo Code 2025-12-13 10:45:24 +00:00
parent a3b258ad62
commit 40d7146f77
18 changed files with 53 additions and 32 deletions

View file

@ -1109,6 +1109,10 @@ export const ChatRowContent = ({
}
} else if (message.text.indexOf("Connection error") === 0) {
body = t("chat:apiRequest.errorMessage.connection")
} else if (message.text.toLowerCase().startsWith("rate limiting")) {
// Internal rate limiting (user-configured delay between requests)
// This is not an error - it's the configured rate limit working as expected
body = t("chat:apiRequest.errorMessage.internalRateLimit")
} else {
// Non-HTTP-status-code error message - store full text as errorDetails
body = t("chat:apiRequest.errorMessage.unknown")

View file

@ -147,8 +147,9 @@
"403": "No autoritzat. La teva clau API és vàlida, però el proveïdor ha rebutjat completar aquesta sol·licitud.",
"429": "Massa sol·licituds. Estàs sent limitat pel proveïdor. Si us plau espera una mica abans de la teva propera crida API.",
"500": "Error del servidor del proveïdor. Quelcom va malament del costat del proveïdor, no hi ha res de malament amb la teva sol·licitud.",
"unknown": "Error API desconegut. Si us plau contacta amb el suport de Roo Code.",
"connection": "Error de connexió. Assegureu-vos que teniu una connexió a Internet funcional."
"connection": "Error de connexió. Assegureu-vos que teniu una connexió a Internet funcional.",
"internalRateLimit": "Esperant entre sol·licituds. Aquest retard es configura a la teva configuració del proveïdor.",
"unknown": "Error API desconegut. Si us plau contacta amb el suport de Roo Code."
}
},
"checkpoint": {

View file

@ -147,8 +147,9 @@
"403": "Nicht autorisiert. Dein API-Schlüssel ist gültig, aber der Anbieter hat sich geweigert, diese Anfrage zu erfüllen.",
"429": "Zu viele Anfragen. Du wirst vom Anbieter rate-limitiert. Bitte warte ein wenig, bevor du den nächsten API-Aufruf machst.",
"500": "Fehler auf dem Server des Anbieters. Es stimmt etwas mit der Anbieterseite nicht, mit deiner Anfrage stimmt alles.",
"unknown": "Unbekannter API-Fehler. Bitte kontaktiere den Roo Code Support.",
"connection": "Verbindungsfehler. Stelle sicher, dass du eine funktionierende Internetverbindung hast."
"connection": "Verbindungsfehler. Stelle sicher, dass du eine funktionierende Internetverbindung hast.",
"internalRateLimit": "Warte zwischen Anfragen. Diese Verzögerung ist in deinen Anbietereinstellungen konfiguriert.",
"unknown": "Unbekannter API-Fehler. Bitte kontaktiere den Roo Code Support."
}
},
"checkpoint": {

View file

@ -154,6 +154,7 @@
"429": "Too many requests. You're being rate-limited by the provider. Please wait a bit before your next API call.",
"500": "Provider server error. Something is wrong on the provider side, there's nothing wrong with your request.",
"connection": "Connection error. Make sure you have a working internet connection.",
"internalRateLimit": "Waiting between requests. This delay is configured in your provider settings.",
"unknown": "Unknown API error. Please contact Roo Code support."
}
},

View file

@ -147,8 +147,9 @@
"403": "No autorizado. Tu clave API es válida, pero el proveedor se negó a completar esta solicitud.",
"429": "Demasiadas solicitudes. Te estás viendo limitado por el proveedor. Por favor espera un poco antes de tu próxima llamada API.",
"500": "Error del servidor del proveedor. Algo está mal en el lado del proveedor, no hay nada mal con tu solicitud.",
"unknown": "Error API desconocido. Por favor contacta al soporte de Roo Code.",
"connection": "Error de conexión. Asegúrate de tener una conexión a Internet funcional."
"connection": "Error de conexión. Asegúrate de tener una conexión a Internet funcional.",
"internalRateLimit": "Esperando entre solicitudes. Este retraso está configurado en la configuración de tu proveedor.",
"unknown": "Error API desconocido. Por favor contacta al soporte de Roo Code."
}
},
"checkpoint": {

View file

@ -147,8 +147,9 @@
"403": "Non autorisé. Votre clé API est valide, mais le fournisseur a refusé de compléter cette demande.",
"429": "Trop de demandes. Vous êtes limité par le fournisseur. Veuillez attendre un peu avant votre prochain appel API.",
"500": "Erreur du serveur du fournisseur. Quelque chose ne va pas du côté du fournisseur, il n'y a rien de mal avec votre demande.",
"unknown": "Erreur API inconnue. Veuillez contacter le support Roo Code.",
"connection": "Erreur de connexion. Assurez-vous que vous avez une connexion Internet fonctionnelle."
"connection": "Erreur de connexion. Assurez-vous que vous avez une connexion Internet fonctionnelle.",
"internalRateLimit": "Attente entre les requêtes. Ce délai est configuré dans les paramètres de votre fournisseur.",
"unknown": "Erreur API inconnue. Veuillez contacter le support Roo Code."
}
},
"checkpoint": {

View file

@ -147,8 +147,9 @@
"403": "अनुमति नहीं। आपकी API कुंजी वैध है, लेकिन प्रदाता ने इस अनुरोध को पूरा करने से इनकार कर दिया।",
"429": "बहुत सारे अनुरोध। आप प्रदाता द्वारा दर-सीमित हो रहे हैं। कृपया अपनी अगली API कॉल से पहले थोड़ी देर प्रतीक्षा करें।",
"500": "प्रदाता सर्वर त्रुटि। प्रदाता की ओर से कुछ गलत है, आपके अनुरोध में कुछ गलत नहीं है।",
"unknown": "अज्ञात API त्रुटि। कृपया Roo Code सहायता से संपर्क करें।",
"connection": "कनेक्शन त्रुटि। सुनिश्चित करें कि आपके पास कार्यशील इंटरनेट कनेक्शन है।"
"connection": "कनेक्शन त्रुटि। सुनिश्चित करें कि आपके पास कार्यशील इंटरनेट कनेक्शन है।",
"internalRateLimit": "अनुरोधों के बीच प्रतीक्षा कर रहा है। यह विलंब आपकी प्रदाता सेटिंग्स में कॉन्फ़िगर किया गया है।",
"unknown": "अज्ञात API त्रुटि। कृपया Roo Code सहायता से संपर्क करें।"
}
},
"checkpoint": {

View file

@ -156,8 +156,9 @@
"403": "Tidak sah. Kunci API Anda valid, tetapi penyedia menolak untuk menyelesaikan permintaan ini.",
"429": "Terlalu banyak permintaan. Anda dibatasi tingkat oleh penyedia. Harap tunggu sebentar sebelum panggilan API berikutnya Anda.",
"500": "Kesalahan server penyedia. Ada yang salah di sisi penyedia, tidak ada yang salah dengan permintaan Anda.",
"unknown": "Kesalahan API yang tidak diketahui. Harap hubungi dukungan Roo Code.",
"connection": "Kesalahan koneksi. Pastikan Anda memiliki koneksi internet yang berfungsi."
"connection": "Kesalahan koneksi. Pastikan Anda memiliki koneksi internet yang berfungsi.",
"internalRateLimit": "Menunggu antar permintaan. Penundaan ini dikonfigurasi di pengaturan penyedia Anda.",
"unknown": "Kesalahan API yang tidak diketahui. Harap hubungi dukungan Roo Code."
}
},
"checkpoint": {

View file

@ -150,8 +150,9 @@
"403": "Non autorizzato. La tua chiave API è valida, ma il provider ha rifiutato di completare questa richiesta.",
"429": "Troppe richieste. Sei limitato dal provider. Attendi un po' prima della tua prossima chiamata API.",
"500": "Errore del server del provider. C'è qualcosa di sbagliato dal lato del provider, non c'è nulla di sbagliato nella tua richiesta.",
"unknown": "Errore API sconosciuto. Contatta il supporto di Roo Code.",
"connection": "Errore di connessione. Assicurati di avere una connessione Internet funzionante."
"connection": "Errore di connessione. Assicurati di avere una connessione Internet funzionante.",
"internalRateLimit": "Attesa tra le richieste. Questo ritardo è configurato nelle impostazioni del tuo provider.",
"unknown": "Errore API sconosciuto. Contatta il supporto di Roo Code."
}
},
"checkpoint": {

View file

@ -147,8 +147,9 @@
"403": "認可されていません。API キーは有効ですが、プロバイダーがこのリクエストの完了を拒否しました。",
"429": "リクエストが多すぎます。プロバイダーによってレート制限されています。次の API 呼び出しの前にお待ちください。",
"500": "プロバイダー サーバー エラー。プロバイダー側に問題があり、リクエスト自体に問題はありません。",
"unknown": "不明な API エラー。Roo Code のサポートにお問い合わせください。",
"connection": "接続エラー。インターネット接続が機能していることを確認してください。"
"connection": "接続エラー。インターネット接続が機能していることを確認してください。",
"internalRateLimit": "リクエスト間で待機中。この遅延はプロバイダー設定で構成されています。",
"unknown": "不明な API エラー。Roo Code のサポートにお問い合わせください。"
}
},
"checkpoint": {

View file

@ -147,8 +147,9 @@
"403": "권한 없음. API 키는 유효하지만 공급자가 이 요청을 완료하기를 거부했습니다.",
"429": "너무 많은 요청입니다. 공급자에 의해 요청 제한이 적용되고 있습니다. 다음 API 호출 전에 잠깐 기다려주세요.",
"500": "공급자 서버 오류입니다. 공급자 쪽에 문제가 있으며 요청에는 문제가 없습니다.",
"unknown": "알 수 없는 API 오류입니다. Roo Code 지원팀에 문의하세요.",
"connection": "연결 오류입니다. 인터넷 연결이 제대로 작동하는지 확인하세요."
"connection": "연결 오류입니다. 인터넷 연결이 제대로 작동하는지 확인하세요.",
"internalRateLimit": "요청 사이에 대기 중입니다. 이 지연은 공급자 설정에서 구성됩니다.",
"unknown": "알 수 없는 API 오류입니다. Roo Code 지원팀에 문의하세요."
}
},
"checkpoint": {

View file

@ -142,8 +142,9 @@
"403": "Niet geautoriseerd. Je API-sleutel is geldig, maar de provider weigerde dit verzoek in te willigen.",
"429": "Te veel verzoeken. Je bent rate-gelimiteerd door de provider. Wacht alsjeblieft even voor je volgende API-aanroep.",
"500": "Provider-serverfout. Er is iets mis aan de kant van de provider, er is niets mis met je verzoek.",
"unknown": "Onbekende API-fout. Neem alsjeblieft contact op met Roo Code-ondersteuning.",
"connection": "Verbindingsfout. Zorg ervoor dat je een werkende internetverbinding hebt."
"connection": "Verbindingsfout. Zorg ervoor dat je een werkende internetverbinding hebt.",
"internalRateLimit": "Wachten tussen verzoeken. Deze vertraging is geconfigureerd in je provider-instellingen.",
"unknown": "Onbekende API-fout. Neem alsjeblieft contact op met Roo Code-ondersteuning."
}
},
"checkpoint": {

View file

@ -147,8 +147,9 @@
"403": "Brak autoryzacji. Twój klucz API jest ważny, ale dostawca odmówił ukończenia tego żądania.",
"429": "Zbyt wiele żądań. Dostawca ogranicza Ci szybkość żądań. Poczekaj chwilę przed następnym wywołaniem API.",
"500": "Błąd serwera dostawcy. Po stronie dostawcy coś się nie powiodło, w Twoim żądaniu nie ma nic złego.",
"unknown": "Nieznany błąd API. Skontaktuj się z pomocą techniczną Roo Code.",
"connection": "Błąd połączenia. Upewnij się, że masz działające połączenie internetowe."
"connection": "Błąd połączenia. Upewnij się, że masz działające połączenie internetowe.",
"internalRateLimit": "Oczekiwanie między żądaniami. To opóźnienie jest skonfigurowane w ustawieniach dostawcy.",
"unknown": "Nieznany błąd API. Skontaktuj się z pomocą techniczną Roo Code."
}
},
"checkpoint": {

View file

@ -147,8 +147,9 @@
"403": "Não autorizado. Sua chave API é válida, mas o provedor se recusou a concluir esta solicitação.",
"429": "Muitas solicitações. Você está sendo limitado pelo provedor. Por favor, aguarde um pouco antes de sua próxima chamada de API.",
"500": "Erro do servidor do provedor. Algo está errado do lado do provedor, não há nada de errado com sua solicitação.",
"unknown": "Erro de API desconhecido. Por favor, entre em contato com o suporte do Roo Code.",
"connection": "Erro de conexão. Certifique-se de que você tem uma conexão de internet funcionando."
"connection": "Erro de conexão. Certifique-se de que você tem uma conexão de internet funcionando.",
"internalRateLimit": "Aguardando entre solicitações. Este atraso está configurado nas configurações do seu provedor.",
"unknown": "Erro de API desconhecido. Por favor, entre em contato com o suporte do Roo Code."
}
},
"checkpoint": {

View file

@ -147,8 +147,9 @@
"403": "Yetkisiz. API anahtarınız geçerli ama sağlayıcı bu isteği tamamlamayı reddetti.",
"429": "Çok fazla istek. Sağlayıcı tarafından oran sınırlaması uygulanıyor. Lütfen sonraki API çağrısından önce biraz bekle.",
"500": "Sağlayıcı sunucu hatası. Sağlayıcı tarafında bir sorun var, isteğinizde sorun yok.",
"unknown": "Bilinmeyen API hatası. Lütfen Roo Code desteğiyle iletişime geç.",
"connection": "Bağlantı hatası. Çalışan bir internet bağlantınız olduğundan emin olun."
"connection": "Bağlantı hatası. Çalışan bir internet bağlantınız olduğundan emin olun.",
"internalRateLimit": "İstekler arasında bekleniyor. Bu gecikme sağlayıcı ayarlarınızda yapılandırılmıştır.",
"unknown": "Bilinmeyen API hatası. Lütfen Roo Code desteğiyle iletişime geç."
}
},
"checkpoint": {

View file

@ -147,8 +147,9 @@
"403": "Truy cập bị từ chối. Khóa API của bạn hợp lệ, nhưng nhà cung cấp từ chối hoàn thành yêu cầu này.",
"429": "Quá nhiều yêu cầu. Nhà cung cấp đang giới hạn tốc độ yêu cầu của bạn. Vui lòng chờ một chút trước khi gọi API tiếp theo.",
"500": "Lỗi máy chủ của nhà cung cấp. Có sự cố ở phía nhà cung cấp, không có gì sai với yêu cầu của bạn.",
"unknown": "Lỗi API không xác định. Vui lòng liên hệ hỗ trợ Roo Code.",
"connection": "Lỗi kết nối. Đảm bảo rằng bạn có kết nối Internet hoạt động."
"connection": "Lỗi kết nối. Đảm bảo rằng bạn có kết nối Internet hoạt động.",
"internalRateLimit": "Đang chờ giữa các yêu cầu. Độ trễ này được cấu hình trong cài đặt nhà cung cấp của bạn.",
"unknown": "Lỗi API không xác định. Vui lòng liên hệ hỗ trợ Roo Code."
}
},
"checkpoint": {

View file

@ -147,8 +147,9 @@
"403": "无权限。您的 API 密钥有效,但提供商拒绝完成此请求。",
"429": "请求过于频繁。提供商已对您的请求进行速率限制。请在下一次 API 调用前稍候。",
"500": "提供商服务器错误。提供商端出现问题,您的请求无问题。",
"unknown": "未知 API 错误。请联系 Roo Code 支持。",
"connection": "连接错误。确保您有可用的互联网连接。"
"connection": "连接错误。确保您有可用的互联网连接。",
"internalRateLimit": "正在等待请求间隔。此延迟在您的提供商设置中配置。",
"unknown": "未知 API 错误。请联系 Roo Code 支持。"
}
},
"checkpoint": {

View file

@ -153,8 +153,9 @@
"403": "無權存取。您的 API 金鑰有效,但提供商拒絕完成此請求。",
"429": "請求次數過多。提供商已對您的請求進行速率限制。請在下一次 API 呼叫前稍候。",
"500": "提供商伺服器錯誤。提供商端發生問題,您的請求沒有問題。",
"unknown": "未知 API 錯誤。請聯絡 Roo Code 支援。",
"connection": "連線錯誤。請確保您有可用的網際網路連線。"
"connection": "連線錯誤。請確保您有可用的網際網路連線。",
"internalRateLimit": "正在等待請求間隔。此延遲在您的提供商設定中配置。",
"unknown": "未知 API 錯誤。請聯絡 Roo Code 支援。"
}
},
"checkpoint": {