From b8bb8a9942e3b9753d591d76cf93c591a65d82ca Mon Sep 17 00:00:00 2001 From: lapoaiscalers Date: Thu, 29 Jan 2026 17:53:30 +0100 Subject: [PATCH] fix: handle Kie API errors returned with HTTP 200 Kie API returns HTTP 200 even on errors, with error code in the JSON body. Now properly checks createResult.code !== 200 and returns the actual error message from the API instead of generic "No task ID in response". Co-Authored-By: Claude Opus 4.5 --- src/app/api/generate/route.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/app/api/generate/route.ts b/src/app/api/generate/route.ts index 590a662c..b737760c 100644 --- a/src/app/api/generate/route.ts +++ b/src/app/api/generate/route.ts @@ -1632,6 +1632,17 @@ async function generateWithKie( } const createResult = await createResponse.json(); + + // Kie API returns HTTP 200 even on errors, check the response code + if (createResult.code && createResult.code !== 200) { + const errorMsg = createResult.msg || createResult.message || "API error"; + console.error(`[API:${requestId}] Kie API error (code ${createResult.code}):`, errorMsg); + return { + success: false, + error: `${input.model.name}: ${errorMsg}`, + }; + } + const taskId = createResult.taskId || createResult.data?.taskId || createResult.id; if (!taskId) {