2026-11-10: 7 API complaints we heard today
Complaints that English-speaking developers posted publicly around Nov 8–10, 2026, paraphrased below with links to the original posts. OpenAI's status page recorded elevated API errors on Nov 9 (identified 06:08 PM, resolved 06:50 PM on that page, about 42 minutes) across Chat Completions, Fine-tuning, Embeddings, Images, Batch, and Audio. Separate posts flagged rising image-generation errors on Nov 8 and elevated ChatGPT conversation errors on Nov 9. Reddit was quieter for fresh first-person API threads in this window; most of what follows comes from X and official status notes. The louder pain was retrying the wrong 429, surprise auto top-ups, a Fable launch gift that barely moved the weekly bar, gateways that swap models in a busy hour, another "rotate your keys" scare, and video catalogs whose sticker prices do not predict the bill. Each answer uses only what PoYo's public site and docs say today, and links to the page it comes from. Where the docs don't cover something, we say so.
Q1. The official API had a bad afternoon — and your coding tool inherited it.
What developers are complaining about: On Nov 9, OpenAI reported elevated errors on its API, covering Chat Completions, Fine-tuning, Embeddings, Images, Batch, and Audio, then marked the window resolved about 42 minutes later (@petersykim, @steveDOTplus). The same day, ChatGPT conversation errors rose as well (@petersykim). A day earlier, image generation was the noisy piece (@petersykim). Downstream tools felt it too: Augment Code reported that its OpenAI models were returning elevated errors and blamed an upstream OpenAI API outage (@outageslive).
How PoYo answers: Getting Started already sets a realistic stability expectation: overall stability may be slightly lower than official providers. When something fails, read the documented code instead of hammering retry:
- 500 / 502 / 503 — retry with exponential backoff. 502 is an
upstream_error(error codes). - 429
rate_limit_error— wait or queue; do not treat it as "add money." - 402
insufficient_credits_error— empty wallet; top up (error codes).
Generation uses the unified async path: POST /api/generate/submit → status poll or webhook (API overview, webhooks). Failed generation tasks are not charged (homepage, llms.txt). Do not blindly resubmit: a retry can create another billable task if the first already accepted (Getting Started). For images, pick an explicit catalog ID from the image overview (GPT Image 2 / 2.5 / 2.6 family IDs, or another published lab such as Nano Banana or Flux) rather than hoping an outage remaps you.
If you want a different documented chat lab while an upstream window is noisy, send that lab's published ID — for example Claude Opus 5.5, Claude Sonnet 5.5, or Gemini 4 Argon (chat overview). Public docs do not claim automatic multi-lab failover, a credit refund for an upstream outage that later succeeded, or that PoYo stayed up when OpenAI did not.
Q2. The 429 was not a rate limit. The wallet was empty.
What developers are complaining about: OpenAI still ships two very different failures as HTTP 429. @waldekm spelled out the trap: Rate limit reached clears if you wait the seconds in Retry-After; credit_balance_exhausted stays until someone adds credits, so retrying it only burns time. Read error.code before you retry — and remember the official Python SDK may already have retried twice before your code sees the error.
How PoYo answers: Empty balance and rate limits are different status codes (error codes):
| Code | Meaning on PoYo |
|---|---|
| 402 | insufficient_credits_error — empty wallet; top up, do not retry as if it were RPM |
| 429 | rate_limit_error — wait / queue |
Inspect GET /api/user/balance for a real-time credits_amount before large batches (user balance). Generation defaults: up to 20 new /api/generate/submit requests per 10 seconds per account; overage returns 429 and does not enter the queue. LLM endpoints are currently not rate limited (Getting Started, chat overview).
Docs do not describe OpenAI-style credit_balance_exhausted inside a 429 body — on PoYo, empty balance is 402.
Q3. Auto top-up fired — sometimes because the wrong key was still live.
What developers are complaining about: Prepaid extras and shared weekly pools kept charging people who thought they had already stopped. One Grok Bot user said four xAI receipts of $20 each landed in under 20 minutes — $80 gone while the bot "wasn't even working on anything big" — and warned that leaving auto top-up on overnight could turn into a four-figure bill (@XPshareDad). Another team traced surprise Auto Top-up charges to a tool that was still calling the xAI API with a key tied to "Aaron's team" balance; they stopped all API use on that key (@stockswithaaron). A third report: a forgotten news routine every 10 minutes is 1,008 runs a week, and together with bot-to-bot handoffs and a Test button that performs real work, it ate 100% of a weekly limit in two days (@fluixoo).
How PoYo answers: PoYo does not sell a shared weekly subscription pool, and it does not keep charging after the wallet hits zero. Chat and media share prepaid credits from one wallet; credits never expire, and there is no subscription that later invoices "extra usage" (homepage). Empty balance returns 402, not a surprise top-up (error codes).
Practical controls that match what those posts want:
- Set hourly / daily / total caps and an IP whitelist on the API key page so a forgotten tool or a leaked key cannot keep spending (Getting Started).
- Give each tool its own key. Revoke the one that should no longer run, instead of sharing one team key across jobs.
- For multi-tenant or multi-bot setups, send
X-End-User-IDand block one caller without rotating the whole key (end-user identification). - Poll
GET /api/user/balanceand stop on a hard 402 (user balance).
Public docs do not describe Grok Bot / Cursor weekly pools, an auto top-up product, or an automatic spend firewall that stops a run already in flight. Build the hard stop with key caps and a 402 handler.
Q4. Fable 5.2 shipped — and the "free reset" barely moved the weekly bar.
What developers are complaining about: Anthropic launched Claude Fable 5.2 (API ID claude-fable-5-2) on Nov 9, with launch posts citing $8 / $40 per 1M tokens and a 50% weekly cap on some seats. The gift that followed frustrated people who were already deep into Opus: one subscriber got a free Fable limit reset, but it only returned what they had spent on Fable (2%). Their all-models weekly bar stayed at 85%, mostly Opus; the 5-hour window refilled, the week barely moved (@Moriarty_tech). Another asked Anthropic to drop the 50% of weekly limit cap on Fable 5.2 (@ashray_malhotra). A Nov 8 write-up collected reports of $200 Claude plans waking up to a drained weekly limit and $50 in extra credits after an idle terminal or a 5-hour pause restarted work overnight (@bebuu_ai).
How PoYo answers: Treat the live catalog as source of truth, not a launch tweet. Today's chat table lists claude-fable-5-1; it does not list claude-fable-5-2 (chat overview, llms.txt). Fetching https://poyo.ai/models/claude-fable-5-2/llms.txt returns 404. An unknown chat model ID returns a documented 404 model_not_found (error codes).
If you want the Fable-class card that is published today, the documented ID is claude-fable-5-1. Live rates on that card are 1600 credits ($8.00) input and 8000 credits ($40.00) output per 1M tokens (claude-fable-5-1/llms.txt, Claude Fable 5.1). Call it on Claude Messages /v1/messages or Chat Completions /v1/chat/completions as marked (chat overview). There is no weekly bar and no "Fable-only reset" that leaves the rest of the wallet locked: prepaid credits live in one wallet and never expire (homepage). Cap keys so an idle agent cannot keep spending (API key page).
Public docs do not promise that an announced third-party model will appear on PoYo, publish a Fable 5.2 launch date, automatically substitute claude-fable-5-1 when you request claude-fable-5-2, or offer subscription-style weekly resets and 50% model caps.
Q5. You tested the strong model. A busy hour routed customers to another one.
What developers are complaining about: The scary part of fallback is not the error — it is the silent swap. One builder asked whether apps can pin a model, or at least get told when a session falls back, because you test against the strong model and a busy hour quietly routes customers to a weaker one (@Varselio1980). The reply: Anthropic's own API can name the model responsible and leave fallback vs blocking to account configuration, but model gateways (like OpenRouter) do switch models for other reasons, including rate limits or high traffic (@TwmStone).
How PoYo answers: Always send an explicit model ID and read that card's live schema at https://poyo.ai/models/<id>/llms.txt (llms.txt, API overview). Unknown IDs return 404 model_not_found, not a silent remap (error codes). A model only accepts the API formats marked for it; sending the wrong shape returns 400 with the list of supported URIs (chat overview).
If a published ID is over capacity on your side, pick another documented ID yourself and record which one you sent. Public docs do not claim automatic gateway failover, a weaker-model substitute when the named ID is busy, or cryptographic attestation that the upstream checkpoint matches the string you requested.
Q6. "Assume the API key you shipped is compromised."
What developers are complaining about: Key hygiene showed up twice. A Nov 9 report said Fireworks was working with Notion, Cursor, and other customers to contain a security incident involving compromised customer data — described there as a second breach in weeks — and the follow-up was blunt: assume any Fireworks API key you shipped is compromised and rotate it now, don't wait for the postmortem (@Ali_Homsi). Fireworks' own October 2026 bulletin and later update already told affected customers to replace revoked Fireworks keys and to rotate third-party credentials at the issuer — removing a stored secret does not invalidate the underlying key. Separately, write-ups of a WorkOS agent incident kept repeating an older lesson: a public internal API, a leftover dev credential, and no rate limit turned a sandbox escape into a data pull (@madebyharman, @saltrocklabs).
How PoYo answers: Treat a key as a secret and assume a leaked one will be used (Getting Started):
- Never expose keys in frontend code, mobile apps, or public repositories.
- Create and revoke keys on the API key page. Give each integration its own key so a rotation does not take down everything.
- Turn on hourly / daily / total caps and an IP whitelist so only approved server IPs can call the API (Getting Started).
- Send
X-End-User-IDif you need to block one caller without rotating the key (end-user identification). - A missing or invalid key returns 401
authentication_error(error codes).
Public docs do not claim breach monitoring, automatic key rotation after a third-party incident, or a refund SLA if a stolen key spends credits before you revoke it. Rotate first, then cap what the next key can spend.
Q7. The same 5-second shot can cost three different amounts.
What developers are complaining about: Sticker prices across video labs still surprise people who thought they were comparing like-for-like. One builder ran Seedance 2.5, Kling 4.0, and Wan 3.0 on the same 5-second image prompt at 720p and reported $1.60 / ~5 min vs $0.43 / ~2 min vs $0.39 / ~2 min — and asked whether Seedance's extra realism was worth about 4x the cheaper options (@NextGenAIVoult). Those dollar figures are from that run's catalog, not from PoYo.
How PoYo answers: Video uses the unified async path: POST /api/generate/submit → status poll or webhook (video overview, webhooks). Failed generation tasks are not charged (homepage, llms.txt). Read live per-second prices on the card you will actually call (re-check the file before you budget):
- Seedance 2.5 —
seedance-2.5: 63 credits ($0.315)/s at 720p with no video input, so a 5-second clip is $1.575 on today's card (seedance-2-5/llms.txt) - Kling 4.0 —
kling-4.0: 28.5 credits ($0.142)/s at 720p with no video input, so 5 seconds is $0.71 (kling-4-0/llms.txt) - Wan 3.0 —
wan3.0-image-to-video(orwan3.0-text-to-video): 20 credits ($0.100)/s at 720p for all workflows, so 5 seconds is $0.50 (wan-3-0/llms.txt)
Ops tips:
- Send an explicit ID. A cheaper documented ID is the right tool for iteration; a keeper ID is a separate submit.
- Prefer webhooks over aggressive polling.
- Do not blindly resubmit: a retry can create another billable task if the first already accepted (Getting Started).
- Download finished files within 3 days retention (Getting Started).
- Cap spend with key limits and stop on 402 (API key page, error codes).
Docs do not promise a dislike / regenerate refund for finished-but-undesired clips, automatic multi-lab video failover, or that another site's sticker price will match PoYo's live llms.txt.
Quick map
| Complaint | Where PoYo documents it |
|---|---|
| OpenAI elevated API / image errors | Stability note · 500/502/503 backoff · 502 upstream_error · failed tasks not charged · no blind resubmit · no auto-failover |
| 429 that actually means no credits | 402 vs 429 · balance API · 20 req/10s generation · LLM currently not rate limited |
| Auto top-up / wrong team key / runaway routines | Prepaid wallet · credits never expire · no subscription · key caps · IP whitelist · X-End-User-ID · stop on 402 |
| Fable 5.2 launch gift / weekly caps | Catalog has claude-fable-5-1 only · 404 model_not_found · live 5.1 llms.txt · one wallet · no weekly reset SLA |
| Gateways that silently switch models | Explicit IDs · live llms.txt · 404 not a silent remap · no automatic failover |
| Compromised or leaked API keys | Secret handling · rotate on API key page · caps + IP whitelist · X-End-User-ID · no breach-monitor / refund SLA |
| Video sticker prices vs the actual bill | Per-second Seedance / Kling / Wan cards · failed tasks not charged · webhooks · 3-day retention · no dislike refund |
Browse models and live prices on poyo.ai, schemas via llms.txt, and the full docs index at docs.poyo.ai/llms.txt.