RocketChat/Rocket.Chat · error · Meteor.Error
error-ai-provider-empty-response
error-ai-provider-empty-response
Error message
error-ai-provider-empty-response
What it means
Returned by POST ai.search.answer when the LLM provider responded successfully but with no usable content, and the AI service surfaced this as error-ai-provider-empty-response. The HTTP call itself worked; the model simply returned an empty completion (empty choices array or blank text).
Source
Thrown at apps/meteor/server/api/v1/ai-search.ts:380
const answerMessages = await getSearchAnswerMessagesForUser(this.userId, messages);
try {
const answer = await AISearch.answer({
query,
messages: answerMessages,
});
return API.v1.success(answer);
} catch (error) {
const message = error instanceof Error ? error.message : '';
if (message === 'error-ai-not-enabled') {
throw new Meteor.Error('error-ai-not-enabled');
}
if (message === 'error-ai-provider-not-configured') {
throw new Meteor.Error('error-ai-provider-not-configured');
}
if (message === 'error-ai-provider-empty-response') {
throw new Meteor.Error('error-ai-provider-empty-response');
}
throw new Meteor.Error('error-ai-provider-request-failed');
}
},
);
View on GitHub (pinned to b2c16d5842)
Solutions
- Retry the request once: empty completions are frequently transient
- Inspect the provider's response logs to confirm the completion body was actually empty
- Increase or correct max_tokens / output limits for the answer-generation model
- If reproducible with the same query, switch or update the answer-generation model
Defensive patterns
Strategy: retry
Try / catch
try { /* ai.search.answer */ } catch (e) {
if (e.error === 'error-ai-provider-empty-response') {
await backoff(1000);
return retryOnce(); // empty completions are often transient
}
} Prevention
- Retry empty completions once with backoff before reporting failure
- Monitor provider-side logs for recurring empty bodies; fix max_tokens if near zero
When it happens
Trigger: POST /api/v1/ai.search.answer where the model returns an empty completion: overly aggressive max_tokens (e.g. 0 or 1), content filters swallowing the answer, or a misbehaving OpenAI-compatible endpoint returning 200 with empty choices.
Common situations: Self-hosted LLM gateways (Ollama/LiteLLM proxies) that return 200 with empty content under load; max output tokens misconfigured near zero; safety filters triggered by the query phrasing; model version that streams an empty first chunk and terminates.
Related errors
- error-ai-not-enabled
- error-ai-provider-not-configured
- error-ai-provider-request-failed
- Failed to fetch registration intent endpoint
- Failed to save registration data
AI-assisted analysis of RocketChat/Rocket.Chat@b2c16d5842 (2026-08-18).
Data as JSON: /api/errors/a5fc0f9212b6ece4.
Report an issue: GitHub.