Budibase/budibase · critical · HTTPError
LiteLLM should be configured. Contact support if the issue p
Error message
LiteLLM should be configured. Contact support if the issue persists.
What it means
Thrown by getLiteLLMModelSettings when the LiteLLM proxy secret key cannot be resolved from key settings. Model settings (apiKey/baseUrl) cannot be built without it, so LiteLLM-backed LLM calls fail fast with HTTPError 500 advising contacting support.
Source
Thrown at packages/server/src/sdk/workspace/ai/llm/litellm.ts:192
return (await response.json()) as AIQuotaUsageResponse
}
const getLiteLLMProviderOptions = (hasTools: boolean) => {
if (!hasTools) return
return {
openai: {
parallelToolCalls: true,
},
}
}
async function getLiteLLMModelSettings(): Promise<{
apiKey: string
baseUrl: string
}> {
const { secretKey } = await getKeySettings()
if (!secretKey) {
throw new HTTPError(
"LiteLLM should be configured. Contact support if the issue persists.",
500
)
}
return {
apiKey: secretKey,
baseUrl: environment.LITELLM_URL,
}
}
async function uploadFile({
stream,
filename,
purpose,
model,
apiKey,
}: {View on GitHub (pinned to a81a902e9a)
Solutions
- Configure the LiteLLM secret key in the environment/tenant settings (admin/_env configuration)
- Verify the key settings record exists and is readable in the database
- Restart services after updating the LiteLLM configuration
- If self-hosting and the key should exist, check backend-core environment LITELLM_* variables and key provisioning scripts
Example fix
// before: calling litellm path without configured key
const settings = await getLiteLLMModelSettings() // throws
// after: guard first
const { secretKey } = await getKeySettings()
if (!secretKey) {
console.error("LiteLLM not configured")
return fallbackProvider()
} Defensive patterns
Strategy: validation
Validate before calling
const { secretKey } = await getKeySettings()
if (!secretKey) {
throw new Error("LiteLLM secret key is not configured for this environment")
} Try / catch
try {
const settings = await getLiteLLMModelSettings()
} catch (e) {
if (e instanceof HTTPError && e.message.includes("LiteLLM should be configured")) {
return { error: "LiteLLM is not configured — contact your administrator" }
}
throw e
} Prevention
- Provision LiteLLM keys during environment bootstrap scripts
- Alert on empty key settings after config resets or migrations
- Verify per-tenant LiteLLM configuration in multi-tenant deployments
When it happens
Trigger: Any LLM call routed through LiteLLM when getKeySettings() returns no secretKey — LiteLLM integration not configured for the environment/tenant, or the stored key settings record is empty/corrupted.
Common situations: Fresh installations where LiteLLM keys were never provisioned; key settings wiped by a config reset/migration; multi-tenant setups where the tenant lacks LiteLLM configuration.
Related errors
- Budibase AI is not configured in this environment (BBAI_LITE
- File id not found
- File id not found
- Workspace DB not found - self-host users using cloud don't h
- CouchDB username not set
AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29).
Data as JSON: /api/errors/fed3c24a9489fbf5.
Report an issue: GitHub.