[{"data":1,"prerenderedAt":360},["ShallowReactive",2],{"\u002Fblog\u002Fai-api-errors-openai-claude-gemini-mcp-fixes-2026\u002F":3,"\u002Fblog\u002Fai-api-errors-openai-claude-gemini-mcp-fixes-2026\u002F-related":332,"\u002Fblog\u002Fai-api-errors-openai-claude-gemini-mcp-fixes-2026\u002F-resources":341},{"id":4,"title":5,"author":6,"body":10,"canonical":269,"category":270,"checker":269,"createdAt":271,"description":272,"disclosure":273,"extension":274,"faq":275,"heroActions":288,"howTo":269,"lastVerified":269,"location":294,"meta":295,"navigation":301,"ogImage":269,"path":302,"primaryKeyword":303,"readingTime":304,"related":269,"seo":305,"seoTitle":269,"sources":306,"stem":322,"tags":323,"takeaways":324,"updatedAt":271,"url":330,"__hash__":331},"blog\u002Fblog\u002Fai-api-errors-openai-claude-gemini-mcp-fixes-2026.md","AI API Errors: 7 OpenAI, Claude, Gemini and MCP Fixes (2026)",{"name":7,"social":8},"Simon Dziak",{"twitter":9},"@SzymonDziak",{"type":11,"value":12,"toc":249},"minimark",[13,21,27,32,35,40,60,64,76,80,83,87,99,103,115,119,122,126,139,143,160,164,177,181,184,210,222,226],[14,15,16,20],"p",{},[17,18,19],"strong",{},"Short answer:"," AI API errors split into billing and key problems you fix in a dashboard, rate limits and overloads your code has to handle, and MCP connector errors that come from how your server is reached and how sign-in is set up. Find your error below; each one links to a full fix page checked against OpenAI’s, Google’s, Anthropic’s or the MCP specification’s documentation.",[14,22,23,26],{},[17,24,25],{},"An AI feature that worked in testing can fail in production on billing, limits or overload, not on the prompt."," The 7 errors below break AI features and MCP connectors in apps built by hand or with AI builders. Facts about each provider come from its own documentation, as checked on the linked fix page; the advice on what to do and in which order is App369’s.",[28,29,31],"h2",{"id":30},"api-key-and-billing-errors","API key and billing errors",[14,33,34],{},"Billing and key errors stop every request until a setting changes or a monthly limit resets, and retrying doesn’t help. These two are OpenAI’s.",[36,37,39],"h3",{"id":38},"openai-429-insufficient_quota","OpenAI 429 insufficient_quota",[14,41,42,43,50,51,55,56,59],{},"The organization ran out of prepaid credits or hit a spend limit. ",[44,45,49],"a",{"href":46,"rel":47},"https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ferror-codes",[48],"nofollow","OpenAI’s error codes guide"," says “Your organization has no prepaid credits remaining” is one cause, and “Retrying billing, spend, or quota errors won’t restore API access.” Branch on ",[52,53,54],"code",{},"error.code"," so a billing stop alerts you instead of retrying. Full steps: ",[44,57,39],{"href":58},"\u002Ffix\u002Fopenai-429-insufficient-quota\u002F",".",[36,61,63],{"id":62},"openai-401-incorrect-api-key-provided","OpenAI 401 “Incorrect API key provided”",[14,65,66,67,71,72,59],{},"The key in your app doesn’t match a valid key for that organization or project. The ",[44,68,70],{"href":46,"rel":69},[48],"OpenAI error codes guide"," lists “Your API key contains a typo or an extra space.” as a cause, along with a key from another organization and an old revoked key still cached. Replace the key everywhere your app reads it, then redeploy. Full steps: ",[44,73,75],{"href":74},"\u002Ffix\u002Fopenai-401-incorrect-api-key\u002F","OpenAI 401 incorrect API key",[28,77,79],{"id":78},"rate-limits-and-overloads","Rate limits and overloads",[14,81,82],{},"Rate limits and overloads are temporary, so the fix is how your app waits and retries. Gemini and Anthropic use different status codes for them.",[36,84,86],{"id":85},"gemini-429-resource_exhausted","Gemini 429 RESOURCE_EXHAUSTED",[14,88,89,90,95,96,59],{},"The project went over a requests-per-minute, tokens-per-minute, requests-per-day or spend limit. According to ",[44,91,94],{"href":92,"rel":93},"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Frate-limits",[48],"Google’s rate limits docs",", “Rate limits are applied per project, not per API key,” and “Requests per day (RPD) quotas reset at midnight Pacific time.” Retry 429s with exponential backoff and jitter, and request a higher limit if normal use keeps hitting it. Full steps: ",[44,97,86],{"href":98},"\u002Ffix\u002Fgemini-api-429-resource-exhausted\u002F",[36,100,102],{"id":101},"anthropic-529-overloaded_error","Anthropic 529 overloaded_error",[14,104,105,110,111,59],{},[44,106,109],{"href":107,"rel":108},"https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fapi\u002Ferrors",[48],"Anthropic’s errors docs"," say “A 529 error can occur when the API experiences high traffic across all users.” The official SDKs retry it with backoff, so use them rather than failing on the first error. With streaming, “an error can occur after the API returns a 200 response,” so listen for error events in the stream too. Full steps: ",[44,112,114],{"href":113},"\u002Ffix\u002Fanthropic-529-overloaded-error\u002F","Anthropic 529 overloaded",[28,116,118],{"id":117},"mcp-connector-errors","MCP connector errors",[14,120,121],{},"An MCP connector fails when Claude or ChatGPT can’t reach your server or can’t complete sign-in. Both check details a local test doesn’t.",[36,123,125],{"id":124},"claude-authorization-with-the-mcp-server-failed","Claude: “Authorization with the MCP server failed”",[14,127,128,129,134,135,59],{},"Claude has to reach your MCP URL from the public internet, without a redirect to another host, and find your OAuth setup. ",[44,130,133],{"href":131,"rel":132},"https:\u002F\u002Fclaude.com\u002Fdocs\u002Fconnectors\u002Fbuilding\u002Fauthentication",[48],"Anthropic’s connector authentication docs"," say: “The 401 status is required, because Claude doesn’t honor a WWW-Authenticate header on a 200 response.” The authorization server also needs S256 PKCE. Full steps: ",[44,136,138],{"href":137},"\u002Ffix\u002Fclaude-connector-authorization-failed\u002F","Claude connector authorization failed",[36,140,142],{"id":141},"chatgpt-mcp-connector-oauth-redirect-or-sign-in-fails","ChatGPT MCP connector: OAuth redirect or sign-in fails",[14,144,145,146,151,152,155,156,59],{},"The redirect address on your allowlist isn’t the one ChatGPT uses, or the issuer doesn’t match exactly. ",[44,147,150],{"href":148,"rel":149},"https:\u002F\u002Fdevelopers.openai.com\u002Fplugins\u002Fbuild\u002Fauth",[48],"OpenAI’s plugin authentication docs"," say to “Copy the exact production redirect URI shown in the MCP server’s management page into your authorization server’s allowlist.” Your metadata must also list S256 under ",[52,153,154],{},"code_challenge_methods_supported",". Full steps: ",[44,157,159],{"href":158},"\u002Ffix\u002Fchatgpt-mcp-oauth-redirect-uri\u002F","ChatGPT MCP OAuth redirect",[36,161,163],{"id":162},"mcp-server-405-method-not-allowed-or-406-not-acceptable","MCP server: 405 Method Not Allowed or 406 Not Acceptable",[14,165,166,167,172,173,59],{},"A 405 on GET or DELETE is a valid answer from a server that only handles requests and responses; a 405 on POST is the real problem, often an old HTTP+SSE endpoint. A 406 comes from some SDKs when the Accept header is incomplete; the ",[44,168,171],{"href":169,"rel":170},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2026-07-28\u002Fbasic\u002Ftransports\u002Fstreamable-http",[48],"MCP specification"," says: “The client MUST include an Accept header listing both application\u002Fjson and text\u002Fevent-stream as supported content types.” Full steps: ",[44,174,176],{"href":175},"\u002Ffix\u002Fmcp-405-406-streamable-http\u002F","MCP 405 or 406",[28,178,180],{"id":179},"which-to-check-first","Which to check first",[14,182,183],{},"The fastest route is the status code and the error code together, since the same status can mean a billing stop or a rate limit. App369’s full order for an AI feature or connector that just broke:",[185,186,187,198,201,204,207],"ol",{},[188,189,190,191,193,194,197],"li",{},"Log the full error body, not only the status: ",[52,192,54],{}," and ",[52,195,196],{},"error.type"," for OpenAI, the status string for Gemini, the error type for Anthropic.",[188,199,200],{},"Check billing, credits and spend limits in the provider’s dashboard.",[188,202,203],{},"Check the API key the deployed app actually uses, then redeploy after changing it.",[188,205,206],{},"Make sure retries cover only transient errors, with backoff and a maximum count.",[188,208,209],{},"For a connector, test the exact URL from outside your network, without following redirects.",[14,211,212,213,217,218,59],{},"For building the AI call itself, the ",[44,214,216],{"href":215},"\u002Fblog\u002Fbuilding-apps-with-claude-api-integration-guide\u002F","Claude API integration guide"," covers retries, fallbacks and guardrails. For connector sign-in choices, see ",[44,219,221],{"href":220},"\u002Fblog\u002Fmcp-server-authentication-api-keys-vs-oauth-2026\u002F","MCP server authentication: API keys or OAuth",[28,223,225],{"id":224},"need-a-hand","Need a hand?",[14,227,228,229,233,234,238,239,243,244,248],{},"App369 fixes AI integration and connector bugs at a fixed price. If one bug is the whole problem, the ",[44,230,232],{"href":231},"\u002Ffixed-price\u002Fflutter-firebase-bug-fix\u002F","App Fix Ticket"," covers it in two fixed-price steps: a $450 diagnosis that finds the root cause and gives you a fixed quote for the fix, then the fix itself. For an AI call built properly with retries, logs and failure alerts, the ",[44,235,237],{"href":236},"\u002Ffixed-price\u002Fapi-integration\u002F","API Integration"," is $1,200. For an MCP server over your existing REST API, so your product works inside Claude, the ",[44,240,242],{"href":241},"\u002Ffixed-price\u002Fmcp-server-for-saas\u002F","MCP Connector for your SaaS"," is $2,500, and OAuth sign-in, which ChatGPT needs, is a separate $1,000 add-on. Or ",[44,245,247],{"href":246},"\u002Fcontact\u002F","describe the problem"," and get a written quote.",{"title":250,"searchDepth":251,"depth":251,"links":252},"",2,[253,258,262,267,268],{"id":30,"depth":251,"text":31,"children":254},[255,257],{"id":38,"depth":256,"text":39},3,{"id":62,"depth":256,"text":63},{"id":78,"depth":251,"text":79,"children":259},[260,261],{"id":85,"depth":256,"text":86},{"id":101,"depth":256,"text":102},{"id":117,"depth":251,"text":118,"children":263},[264,265,266],{"id":124,"depth":256,"text":125},{"id":141,"depth":256,"text":142},{"id":162,"depth":256,"text":163},{"id":179,"depth":251,"text":180},{"id":224,"depth":251,"text":225},null,"AI & Technology","2026-11-02T12:00:00.000Z","AI feature broken by a 401, 429 or 529, or an MCP connector that won't connect? 7 OpenAI, Anthropic, Gemini and MCP errors, what each means and how to fix it.","App369 publishes this guide and sells fixed-price work on AI integrations and MCP connectors.","md",[276,279,282,285],{"question":277,"answer":278},"Why does OpenAI return 429 when my app sends very few requests?","A 429 can be a billing stop rather than a rate limit: the organization has no prepaid credits left or reached a spend limit. Billing errors and rate limits both return 429, so read error.code, add credits or raise the limit, and stop retrying billing errors.",{"question":280,"answer":281},"Should my app retry AI API errors automatically?","Retry only the transient ones. Google lists 429, 408 and 5xx for Gemini, and Anthropic's SDKs retry 5xx errors such as 529 with exponential backoff. Billing, quota and invalid-key errors don't clear on retry, so alert yourself instead.",{"question":283,"answer":284},"Why does my MCP server work locally but fail to connect in Claude?","Claude has to reach it from the public internet. A hostname that resolves to a private address, or a firewall or bot rule that blocks Anthropic, fails before your app sees the request. A redirect to another host drops the Authorization header, so the target answers 401.",{"question":286,"answer":287},"Can App369 fix an AI API or MCP connector error for me?","Yes. The App Fix Ticket covers one reproducible bug in two fixed-price steps: a $450 diagnosis that finds the root cause and gives you a fixed quote for the fix, then the fix itself.",[289,292],{"label":290,"to":291},"All AI and API fixes","\u002Ffix\u002F",{"label":293,"to":231},"Start with a $450 diagnosis","Miami, FL",{"readingTimeStats":296},{"text":297,"minutes":298,"time":299,"words":300},"5 min read",4.51,270600,902,true,"\u002Fblog\u002Fai-api-errors-openai-claude-gemini-mcp-fixes-2026","ai api errors","6 min",{"title":5,"description":272},[307,309,311,313,315,318,320],{"title":308,"url":46},"OpenAI API docs, Error codes",{"title":310,"url":92},"Gemini API docs, Rate limits",{"title":312,"url":107},"Anthropic docs, Errors",{"title":314,"url":131},"Anthropic, Authentication for connectors",{"title":316,"url":317},"Anthropic, Troubleshoot connectors","https:\u002F\u002Fclaude.com\u002Fdocs\u002Fconnectors\u002Fbuilding\u002Ftroubleshooting",{"title":319,"url":148},"OpenAI, Plugin authentication",{"title":321,"url":169},"MCP specification, Streamable HTTP (2026-07-28)","blog\u002Fai-api-errors-openai-claude-gemini-mcp-fixes-2026","ai api errors, openai 429 insufficient_quota, openai 401 incorrect api key, gemini 429 resource_exhausted, anthropic 529 overloaded, claude connector authorization failed, chatgpt mcp oauth, mcp 405 406",[325,326,327,328,329],"An OpenAI 429 with insufficient_quota is a billing stop, not a rate limit: retrying won't restore access. Branch on error.code.","Gemini API rate limits are applied per project, not per API key, so more keys in one project don't raise them.","An Anthropic 529 can occur when the API has high traffic across all users. Use the SDK's retries and handle errors that arrive after a 200 in a stream.","A Claude connector needs an MCP URL that is publicly reachable and answers an unauthenticated request with 401 and a WWW-Authenticate header.","ChatGPT compares issuers by exact string, so a trailing slash or different casing is enough to fail sign-in. Allowlist the exact redirect URI it shows.","https:\u002F\u002Fapp369.com\u002Fblog\u002Fai-api-errors-openai-claude-gemini-mcp-fixes-2026\u002F","7VQbZWPmsC_zg_J8jTXNe5v_OLwKaXJP3T7HF6x02SE",[333,337],{"path":334,"title":335,"description":336,"category":270},"\u002Fblog\u002Fapp-store-google-play-rejections-fixes-2026","App Store and Google Play Rejections: 13 Fixes (2026)","App rejected by Apple or Google Play? 13 rejections, from Guidelines 2.1, 4.3 and 5.1.1 to Play's Data safety form and 12-tester rule, and how to fix each.",{"path":338,"title":339,"description":340,"category":270},"\u002Fblog\u002Fexpo-flutter-build-errors-fixes-2026","Expo and Flutter Build Errors: 12 Fixes (2026)","Expo or Flutter build failing, or the app crashes after release? 12 mobile build errors, from EAS builds and pod install to TestFlight and Gradle, and each fix.",[342,344,348,351,354,357],{"keyword":5,"url":330,"title":5,"relevance":343},66,{"keyword":345,"url":346,"title":345,"relevance":347},"Firestore and Cloud Functions Errors: 11 Fixes (2026)","https:\u002F\u002Fapp369.com\u002Fblog\u002Ffirestore-cloud-functions-errors-fixes-2026\u002F",11,{"keyword":349,"url":350,"title":349,"relevance":347},"Vercel Errors: 9 Deploy and Function Fixes (2026)","https:\u002F\u002Fapp369.com\u002Fblog\u002Fvercel-errors-deploy-function-fixes-2026\u002F",{"keyword":339,"url":352,"title":339,"relevance":353},"https:\u002F\u002Fapp369.com\u002Fblog\u002Fexpo-flutter-build-errors-fixes-2026\u002F",10,{"keyword":355,"url":356,"title":355,"relevance":353},"Firebase Auth Errors: 9 Sign-In Fixes (2026)","https:\u002F\u002Fapp369.com\u002Fblog\u002Ffirebase-auth-errors-sign-in-fixes-2026\u002F",{"keyword":358,"url":359,"title":358,"relevance":353},"Lovable, Bolt and Replit Errors: 7 Fixes (2026)","https:\u002F\u002Fapp369.com\u002Fblog\u002Flovable-bolt-replit-errors-fixes-2026\u002F",1793636522408]