From 240697a94216d4619fdc4563d4a6f9bd2bc82fdc Mon Sep 17 00:00:00 2001 From: Saurabh Kumar Bajpai Date: Tue, 28 Jul 2026 13:13:31 +0530 Subject: [PATCH] fix: add HTTP status check before JSON parse --- backend/src/services/openRouterService.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/backend/src/services/openRouterService.js b/backend/src/services/openRouterService.js index f5aca47d..e66adfd1 100644 --- a/backend/src/services/openRouterService.js +++ b/backend/src/services/openRouterService.js @@ -154,8 +154,18 @@ const callOpenRouter = async ({ apiKey, model, message, history }) => { body: JSON.stringify(payload), }); + if (!response.ok) { + const errorBody = await response.json().catch(() => ({})); + throw new AppError( + errorBody?.error?.message || `OpenRouter request failed for model ${model}`, + response.status, + 'OPENROUTER_ERROR' + ); + } + data = await response.json(); } catch (error) { + if (error instanceof AppError) throw error; throw new AppError( `OpenRouter network request failed for model ${model}: ${error.message}`, 502, @@ -163,12 +173,6 @@ const callOpenRouter = async ({ apiKey, model, message, history }) => { ); } - if (!response.ok) { - const messageText = - data?.error?.message || `OpenRouter request failed for model ${model}`; - throw new AppError(messageText, response.status, 'OPENROUTER_ERROR'); - } - const reply = data?.choices?.[0]?.message?.content?.trim(); if (!reply) { throw new AppError(