A credential the AI service refused, or a 429 with money behind it: which layer said no, whether waiting helps, and what to click in which console.
A refusal is one of two events, and the first words say which.
| The first words | What happened |
|---|---|
[<Vendor> issue]: | the AI service answered and said no - its own words follow |
Missing <Vendor> API Key | no credential reached the request, so Big-AGI refused before calling the service |
Copy the message and nothing else. Never paste an API key, or the content you were working on, into a public channel.
[OpenAI issue] Unauthorized: Incorrect API key.The AI service rejected the credential. Big-AGI rewrites any upstream text containing Incorrect API key into this exact sentence, so it names OpenAI whichever OpenAI-compatible service produced it.
Ctrl + Shift + M) -> Advanced and re-paste the key, checking for a truncated copy or a trailing space.403 Forbidden instead.Upstream responded with HTTP 401 UnauthorizedThe AI service received the key and refused it. Its own explanation follows the colon, kept up to 480 characters so org ids and help URLs survive intact.
Already set on server, the key comes from the deployment and only its operator can change it (keys and access control).Upstream responded with HTTP 403 ForbiddenThe AI service accepted the credential and refused this action - a project without access to that model, a region restriction, or a key restricted to certain callers. Big-AGI appends Please make sure the Server can access -> <url> to 403s as well as 404s. On a 403 it misleads: the request did arrive.
Gemini, on a payload containing "Requests from referer", adds:
Gemini: Check API key restrictions in Google Cloud Console
Missing <Vendor> API KeyEvery vendor's version of the string names the two places a key can come from: the UI, or the environment of the deployment.
Already set on server confirms the server holds one. If it is set and still missing, the variable may never have reached the process.Missing OpenAI API Key on a service you pointed elsewhere means the host field is wrong. That guard fires only against OpenAI's own host, because a custom OpenAI-compatible host needs no key.An error occurred. Please check your API Key.The setup panel's fallback when the AI service returned nothing usable to quote.
| What the panel says | When |
|---|---|
An error occurred. Please check your API Key. | the default |
An error occurred. Please check your server. | the three local runtimes - that field is an address |
Rate limit and quota arrive as the same HTTP 429, and Big-AGI splits them. Rate limit means too fast - wait. Quota, balance or billing means out of money or out of allowance - act. The split is exact:
| The 429 text contains | What it is | Retried |
|---|---|---|
quota or billing | Out of money or out of allowance | Never |
request too large, or limit <n>, requested <n> | One request over the per-minute token limit | Never |
rate limit of 0 input tokens per minute | No access to that model | Never |
Insufficient balance or no resource package | A prepaid balance at zero | Never |
credit balance is exhausted | Prepaid credit gone | Never |
| anything else | A real rate limit | 4 attempts, roughly 1s, 2s and 4s apart |
insufficient_quota. It stays until you raise it, or until the month rolls over.429 Too Many RequestsA genuine rate limit: the AI service is throttling how fast you send, not what you owe. Big-AGI already made its four attempts before showing it, so the burst has passed.
A request refused before generation bills nothing; a stream that stopped part-way bills what it produced.
rate limit of 0 input tokens per minuteYour organisation has no access to that model. It is shaped like a rate limit - a limit of zero - and nothing on the Big-AGI side raises it.
There is no workaround here: the grant has to come from the AI service.
The toggle is Big-AGI's; the permission is the AI service's. With it on, your browser calls the service itself. A service that does not allow browser calls refuses before the model is ever reached.
Direct Connection works only with your API key stored in the browser, and with an AI service that permits direct browser calls (CORS). Where it cannot be used, requests route through the Big-AGI fast edge servers instead - everything still works, within the standard upload size and time limits.
Via server (default) and the same key works through the Big-AGI server.Sync not available, Storage quota exceeded. Please upgrade your plan or free up space. and Unknown feature status read like access errors and come from your Big-AGI plan (plans and billing). Sign-in refusals belong to your account and Pro. Anything else: where to send it.
BIG-AGI
Resources
© 2026 Token Fabrics·Built with passion in San Diego