| title | Troubleshooting |
|---|---|
| description | Common issues and solutions for VoidLLM |
| section | root |
| order | 3 |
Your VOIDLLM_ADMIN_KEY is too short. Generate one:
export VOIDLLM_ADMIN_KEY=$(openssl rand -base64 32)This is normal on subsequent starts. The admin key is only used on first boot to create the bootstrap user. After that, it's ignored.
The encryption key is required for all deployments. It encrypts upstream API keys in the database:
export VOIDLLM_ENCRYPTION_KEY=$(openssl rand -base64 32)VoidLLM prints credentials to stdout on first start only. Check container logs:
docker logs voidllm | grep "BOOTSTRAP"
kubectl logs deploy/voidllm | grep "BOOTSTRAP"If you missed them, delete the database and restart to re-bootstrap.
- API key is wrong, expired, or revoked
- Check key format: must start with
vl_uk_,vl_tk_,vl_sa_, orvl_sk_ - Session keys (
vl_sk_) expire after 24 hours
- The model name or alias doesn't exist in VoidLLM
- Check available models:
GET /api/v1/modelsor the UI Models page - If using aliases, make sure the alias is configured for the caller's org/team
- The upstream LLM provider is unreachable
- Check the model's
base_urlin configuration - Test connectivity: the model's health status on the Models page
- If using load balancing, check individual deployment health
- The caller has exceeded their rate limit (RPM/RPD) or token budget
- Check limits on the key, team, and org level
- Most-restrictive-wins: the tightest limit anywhere in the hierarchy applies
- Reverse proxy may be buffering responses - set
proxy_buffering offin Nginx - Upstream timeout may be too short - increase
write_timeoutin server config - Check per-model timeout if set
Global MCP servers are closed by default. An org admin must grant access:
- UI: Organization -> MCP Servers tab -> toggle access
- API:
PUT /api/v1/orgs/{org_id}/mcp-access
System admins bypass access checks.
- The server may not have
code_mode_enabled: true - Tools may not be cached yet - click "Refresh Tools" on the MCP Servers page
- Check if tools are blocked via the per-tool blocklist
VoidLLM does not support the pre-2025-03-26 SSE MCP transport. The upstream server needs to support Streamable HTTP (the current MCP spec).
- Check email and password (case-sensitive)
- Session keys expire after 24 hours - you may need to log in again
- If SSO is enabled, use the "Sign in with SSO" button instead
- Some features require an Enterprise license (SSO, audit logs, OTel)
- Check System -> License for your current plan
- The UI shows upgrade prompts for locked features
- Only one VoidLLM instance can write to SQLite at a time
- For multi-instance deployments, use PostgreSQL
- Check that no other process is accessing the database file
- Verify DSN format:
postgres://user:pass@host:5432/dbname?sslmode=require - Check network connectivity between VoidLLM and PostgreSQL
- Verify credentials and database permissions
- Check the
/metricsendpoint for proxy latency percentiles - VoidLLM adds < 500us overhead - if latency is high, the upstream provider is slow
- Check circuit breaker status on the Models page - a tripped breaker adds retry latency
- Check for large request/response bodies (VoidLLM buffers bodies in memory during proxying)
- If using Code Mode, reduce
pool_sizeto limit WASM runtime memory
- GitHub Issues - bug reports and feature requests
- Security - vulnerability reports
- Contact - general inquiries