Common Issues
Solutions to common problems when using ZIRI.
Port Already in Use
Problem: Server won’t start because port 3100 is already in use.
Solution:
# Find what's using the port
# Windows
netstat -ano | findstr :3100
# macOS/Linux
lsof -i :3100Then either:
- Stop the other process
- Change the port in
docker-compose.yml:
ports:
- "3101:3100" # Use port 3101 insteadService Locked
Problem: “service is locked” or similar errors.
Solution:
- Make sure only one ZIRI instance is running
- Check for stuck processes
- Restart ZIRI if needed
Make sure only one container is running.
API Key Not Working
Problem: Requests fail with “API key not found” or “Invalid API key format”.
Solutions:
- Check format - API keys must start with
ziri-and have formatziri-{userId}-{hash} - Verify key exists - Check the Keys page in UI
- Check key status - Make sure the key is active (not revoked)
- Use correct header - Include
X-API-Keyheader (notAuthorization)
Authorization Denied
Problem: Requests return “Authorization denied”.
Solutions:
- Check policies - Make sure you have at least one active permit policy
- Check policy conditions - Verify your request matches policy conditions
- Check key status - Make sure the API key is active (not revoked)
- Check spend limits - If using spend limits, verify current spend is under limit
- Check audit logs - See why the policy denied the request
Rate Limit Exceeded
Problem: Requests return “Rate limit exceeded” (HTTP 429).
Solutions:
- Wait - Wait for the reset time shown in the error
- Increase limit - Update the user’s
limit_requests_per_minute - Check limit - Verify the limit isn’t set too low
Queue Full
Problem: Requests return “Server busy - queue full” (HTTP 503).
Solutions:
- Wait and retry - Queue slots are released after requests complete
- Check concurrent limits - Verify user’s concurrent request limit isn’t too low
- Check for stuck requests - Look for requests that aren’t completing
Provider Not Found
Problem: “Provider not found” error.
Solution:
Add the provider first:
- Go to Providers page
- Click Add Provider
- Enter provider name and API key
- Save
Provider Key Missing
Problem: “Provider API key not configured” error.
Solution:
Configure the provider’s API key:
- Go to Providers page
- Click on the provider
- Add or update the API key
- Save
Model Does Not Support Action
Problem: “Model does not support {action}” error.
Solution:
Use a model that supports the action:
- Completions: gpt-4, gpt-4o-mini, claude-3-opus, etc.
- Embeddings: text-embedding-3-small, text-embedding-3-large, etc.
- Images: dall-e-3, dall-e-2
Check the model documentation to see which actions it supports.
Cost Tracking Issues
Problem: Costs showing as 0.0000 or incorrect.
Solutions:
- Check pricing data - Verify model pricing is seeded
- Check token usage - Verify provider returns token usage
- Check model pricing - Verify pricing is configured for the model
- Check spend reset - Verify daily/monthly resets are working
Email Not Sending
Problem: User credentials emails not being sent.
Solutions:
- Check email config - Verify email is enabled in config
- Test connection - Test SMTP/SendGrid connection
- Check credentials - Verify username/password are correct
- Check logs - Look for email errors in server logs
- Check spam - Emails might be in spam folder
UI Not Loading
Problem: UI shows “UI not found” or blank page.
Solutions:
- Check container - Make sure container is running:
docker compose ps - Check logs - View logs:
docker compose logs - Restart container - Try restarting:
docker compose restart
Root Key Regenerating
Problem: Root key changes on every restart.
Solution:
Set ZIRI_ROOT_KEY environment variable in Docker Compose:
environment:
- ZIRI_ROOT_KEY=your-persistent-keyNext Steps
- FAQ - Frequently asked questions