Provider Errors
When a request fails, the reply shows what went wrong instead of staying empty. Most errors come from the provider: a key, a bill, a model name, a usage limit or a busy server.
Reading An Error
The error appears in place of the answer, usually as the provider's name followed by its own message. If a provider fails partway through an answer, that error is shown too.
Before changing anything:
- Try again. A brief failure at NanoGPT or another OpenAI-compatible provider, before the answer starts, is already retried once on its own. If it still fails, wait a moment.
- Try another model. If the same request works elsewhere, the problem is the first provider's setup or account.
When the provider sends no useful message, Fluent explains its status code:
| Code | Meaning |
|---|---|
400 | Bad request |
401 | Invalid API key |
402 | Payment required |
403 | Access forbidden |
404 | Model not found |
429 | Rate limit exceeded |
500 | Server error |
502 | Bad gateway |
503 | Service unavailable |
504 | Gateway timeout |
401 And 403
Check these first:
- The API key is saved for the correct provider in Settings → Models. The API key section shows whether Fluent could verify it
- The key is still valid
- The provider account has access to the selected model
- The endpoint is the correct one for that provider
401 usually means the key is wrong or expired. 403 usually means the key exists but does not have access to that model or route.
Most common resolution is to recreate the API key, ensuring it has the correct project and/or organization – if that applies.
402
402 is usually a billing problem.
Check the provider account directly for:
- Missing credits
- Failed billing
- Paused usage
- Account restrictions
For NanoGPT, the NanoGPT section in Settings → Models shows your balance, with a Top up link.
404
404 usually means the selected model is not available on that provider.
Check:
- The exact model name
- Whether the model exists on that provider
- Whether your account has access to it
429
429 means rate limiting.
Wait a moment and try again. If it happens often:
- Reduce heavy parallel requests, such as a large Council
- Use a faster or lighter model
- Switch to another provider for that workflow
400
400 is a general request error.
This can mean:
- Malformed input
- Unsupported parameter
- Model-specific restriction
- Partial incompatibility on a custom OpenAI-compatible endpoint
If the same task works on one provider or model, but fails with 400 on another, the difference is usually provider compatibility or configuration.
The most common fix is a model setting. In Settings → Models, click the sliders button on the model's card and try changing:
| Setting | Try |
|---|---|
| Use structured JSON | Off, if the provider returns errors or empty results |
| Use streaming | Off, if the provider doesn't support streaming |
| Use tools | Off, if the model can't call tools |
| Reasoning | Off, if the model doesn't support reasoning |
What works depends on the model.
5xx
500, 502, 503, and 504 usually indicate temporary provider-side problems.
Typical causes:
- Provider instability
- Maintenance
- Timeouts
- Temporary overload
At NanoGPT and other OpenAI-compatible providers, Fluent has already sent the request a second time if the first try failed before the answer started. Try again later or switch to another model temporarily.
Subscription Providers
Claude Code, Codex, Antigravity and GitHub Copilot run through their own command-line tools and your plan, so their errors are about installation, sign-in and plan limits. Each message names the provider:
| Message | What to do |
|---|---|
| "… isn't installed" | Open Settings → Models, choose the provider, click Details… and then Install CLI |
| "You're not signed in to …" | Open Settings → Models, choose the provider, click Details…, then Sign In and approve in your browser |
| "Your … subscription has hit its usage limit" | Wait for the limit to reset, or switch models. Details… on the provider's page in Settings shows each limit and when it resets |
| "Your account isn't allowed to use …" | Your plan or organization doesn't allow it. For GitHub Copilot, check github.com/settings/copilot: an organization admin may need to enable it |
| "This … model doesn't support reasoning" | Set Reasoning to Off for that model, or pick another model |
| "… stopped after 3 minutes without model output or tool progress" | Neither the model nor its tools did anything for 3 minutes, so Fluent stopped waiting. Try again, or split the request into smaller ones |
| "… click Update CLI" | Open Settings → Models, choose the provider, click Details… and then Update CLI |
Signing out in Settings signs you out of that tool everywhere on your Mac, including Terminal. Your subscription isn't affected.
NanoGPT
NanoGPT serves models from many providers through one account. If one model keeps failing while others work, that model's provider is probably having trouble: pick another model for now.
If requests fail for lack of credit, check your balance in the NanoGPT section of Settings → Models and click Top up.
Local Models And Apple Intelligence
| Message | What to do |
|---|---|
| "No local models are downloaded. Please download a model first." | Download a model in Settings → Models → Local (MLX) |
| "Apple Intelligence is disabled" | Turn on Apple Intelligence in macOS System Settings |
| "Apple Intelligence model is downloading" | Wait until macOS finishes downloading it |
| "Device not eligible for Apple Intelligence" | Use a local or cloud model instead |
| "Apple Intelligence requires macOS 26 or later" | Update macOS, or use a local or cloud model |
Custom Providers
For custom OpenAI-compatible providers, also check:
- API Base URL, usually ending in
/v1 - The API key, or Optional API key for local servers that don't need one
- Model list availability
- Provider-specific compatibility limits
If the same prompt works on a native provider but fails only on one custom endpoint, check the endpoint setup first. See Common Issues.