diff --git a/services/discord-gateway/src/modules/ai-moderation/llmModerationClient.ts b/services/discord-gateway/src/modules/ai-moderation/llmModerationClient.ts index 9809170..ab17b43 100644 --- a/services/discord-gateway/src/modules/ai-moderation/llmModerationClient.ts +++ b/services/discord-gateway/src/modules/ai-moderation/llmModerationClient.ts @@ -861,11 +861,21 @@ async function runTextOnlyBatch( return `${systemText}\n\n\n${messagesBlock}\n`; }; - const batchResult = await callModerationLLM( - buildContent, - targetIds, - `text-batch-${i + 1}`, - ); + const batchResult = await Promise.race([ + callModerationLLM(buildContent, targetIds, `text-batch-${i + 1}`), + new Promise<{ results: AnalysisResult[]; raw: unknown }>((_, reject) => { + const timeout = setTimeout( + () => + reject( + new Error( + `Text-only batch sub-batch ${i + 1} timed out for messages ${targetIds.join(", ")}`, + ), + ), + timeoutMs, + ); + timeout.unref(); + }), + ]); allResults.push(...batchResult.results); if (batchResult.raw) lastRaw = batchResult.raw;