From bdff16a74d78c1ff1b618283563a0852abc7cf79 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Nov 2025 18:30:53 +0000 Subject: [PATCH] Fix: Suppression erreurs console OpenRouter 400 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problème: Console spam 400 errors quand clé API OpenRouter non configurée - Frontend: Chat appelle getModels() sans vérifier si API key existe - Backend: Retourne 400 au lieu de 200 avec tableau vide Solutions: - Frontend (Index.tsx:556): Ajout check settings.openrouter_api_key avant loadOpenRouterModels() - Backend (openrouter.routes.js:28,93): Return 200 [] au lieu de 400 error quand pas de clé API Résultat: Plus d'erreurs console, UI affiche simplement pas de modèles --- routes/openrouter.routes.js | 10 ++++------ src/pages/Index.tsx | 6 +++--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/routes/openrouter.routes.js b/routes/openrouter.routes.js index 259349e..6d3de69 100644 --- a/routes/openrouter.routes.js +++ b/routes/openrouter.routes.js @@ -26,10 +26,8 @@ router.get('/models', authenticateToken, async (req, res) => { const setting = await getOne('SELECT value FROM settings WHERE key = $1', ['openrouter_api_key']); if (!setting || !setting.value) { - return res.status(400).json({ - error: 'Clé API OpenRouter non configurée', - models: [] - }); + // Return 200 with empty array to avoid console errors + return res.status(200).json([]); } // Appeler l'API OpenRouter pour récupérer les modèles @@ -93,8 +91,8 @@ router.post('/refresh-models', authenticateToken, requireAdmin, async (req, res) const setting = await getOne('SELECT value FROM settings WHERE key = $1', ['openrouter_api_key']); if (!setting || !setting.value) { - return res.status(400).json({ - error: 'Clé API OpenRouter non configurée', + return res.status(200).json({ + message: 'Clé API OpenRouter non configurée', models: [] }); } diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index cd8bbbf..e164d59 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -552,12 +552,12 @@ const Index = () => { } }, []); - // Load models when chatbox opens + // Load models when chatbox opens (only if API key is configured) useEffect(() => { - if (chatOpen && openRouterModels.length === 0) { + if (chatOpen && settings.openrouter_api_key && openRouterModels.length === 0) { loadOpenRouterModels(); } - }, [chatOpen]); + }, [chatOpen, settings.openrouter_api_key]); // Set default model when models are loaded useEffect(() => {