Nano Banana can fail in Gemini because of an app session, Pro route, prompt policy, API project, wrapper, quota, or service-status problem, and those failures can look identical from the prompt box.
Pick the failed surface first, apply one matching fix, retest once on the same surface, and stop blind retries when the signal points to permission, quota, policy, overload, or a wider incident.
| Failed surface | Symptom you may see | First action | Retest | Stop or handoff rule |
|---|---|---|---|---|
| Gemini app or mobile app | Loading Nano Banana, stuck generation, or "something went wrong" | Restart the tab or app, then start a fresh chat | Run the same simplified image request once | If it still fails, check prompt policy, account route, or status before retrying |
| Pro redo route | Redo with Pro is missing, unavailable, or inconsistent | Verify account, plan surface, region, and whether the first image was made in the expected route | Try the same task from the confirmed Pro-capable route | Do not assume outage until account and route are confirmed |
| Prompt or policy | Gemini answers with text, refuses, or returns no image | Remove ambiguous, restricted, or over-constrained parts and ask for one image-only output | Run a smaller prompt once | Stop if the issue is policy-shaped; rewrite rather than retrying |
| AI Studio or Gemini API | 403, 429, 503, no image, or request failure | Check model ID, key/project, billing, quota, payload, and status | Retry one corrected request | 429 and 503 need branch-specific backoff or status checks, not app-cache fixes |
| Wrapper or provider tool | Figma, Make, gateway, SDK, or upload flow fails while direct route may work | Compare the same prompt on the direct route and inspect payload/log mapping | Retest after one wrapper-side correction | Escalate with route, timestamp, prompt, model, error code, request ID, and screenshot/log |
| Status or outage suspicion | Many routes fail, status signals appear, or 503 persists | Check the official status owner and compare one direct route | Wait or switch only after the status check | Forum reports are symptom discovery, not proof of a live outage |
Current official docs control model IDs and API error meanings; current status, quotas, prices, plan benefits, and provider claims need fresh verification before they become facts.
The 12 fixes, grouped by route
Do not run all 12 fixes in order. Use the symptom to choose the route, run one fix, then retest the same route once. That keeps the signal clean and avoids turning a quota, permission, or policy problem into a noisy retry loop.

| # | Route | Fix | Use it when | Verification |
|---|---|---|---|---|
| 1 | App session | Restart the tab or app | Gemini is stuck loading, the UI freezes, or the first attempt never completes | Same prompt, same chat, one retry |
| 2 | App session | Start a fresh chat | The chat history has several edits, uploads, or failed attempts | New chat, same simplified request |
| 3 | App or mobile | Update the app or browser | Mobile app behavior differs from desktop, or the UI route looks stale | Same request after update |
| 4 | Prompt/policy | Simplify the prompt | Gemini replies with text, refuses, or returns no image | Short image-only prompt |
| 5 | Pro route | Check the Pro route | "Redo with Pro" is missing or behaves differently than expected | Confirm the account and route before retrying |
| 6 | API | Check the model ID | The API request fails before generation starts | Use the current official image model ID |
| 7 | API | Check API key and project | 401, 403, or project permission wording appears | Same request with verified key/project |
| 8 | API | Check billing and quota | 429 or RESOURCE_EXHAUSTED appears | Inspect the project limit owner before retrying |
| 9 | API | Stop the 429 loop | Repeated retries return 429 | Back off and fix quota/rate/spend branch |
| 10 | API/status | Check 503 status | UNAVAILABLE, overload, or widespread route failure appears | Check official status and retry policy |
| 11 | Wrapper | Check payload mapping | A third-party tool fails but direct Gemini may work | Compare direct app/API route with the wrapper route |
| 12 | Escalation | Save evidence | One controlled retest still fails | Save timestamp, route, model, prompt, error code, request ID, screenshot, and logs |
Fix Gemini app and mobile session failures
If the Gemini app is the failed surface, do not begin with API keys, billing, or model IDs. App-session failures are usually about a stuck conversation state, stale UI route, browser/app cache, network instability, or a prompt that Gemini is treating as a text task.
Start with the smallest reversible actions:
- Reload the browser tab or fully close and reopen the mobile app.
- Start a fresh Gemini chat if the current conversation has many edits, uploads, or failed image attempts.
- Update the Gemini or Google app on mobile, then retry from the same account.
- Reduce the prompt to one image request with one subject, one style, and one output expectation.
- Remove unnecessary uploaded files until you know whether file context is the trigger.
The same-surface retest matters. If you restart the app, rewrite the prompt, change accounts, and switch devices all at once, you have no proof of what fixed or broke the route. One changed variable is enough.
Stop after one controlled retest if the symptom changes into account access, policy, or status. For example, a loading loop that becomes a refusal is no longer an app-session problem; it has moved to the prompt/policy branch.
Fix missing Pro redo or account-route confusion
"Nano Banana Pro is not working" is often an access-route problem rather than an image model problem. The visible product route can depend on account, subscription surface, region, current app rollout, and whether the first image was generated in a route that supports the Pro redo action.
Use this branch when the symptom is about availability rather than generation quality:
| Question | Why it matters | Next action |
|---|---|---|
| Are you on the intended Google account? | Multiple signed-in accounts can make Gemini show a different plan or feature route. | Switch to the account that owns the expected access and reload Gemini. |
| Did the first image come from the route that supports redo? | Some Pro actions depend on how the initial image was created. | Generate a clean first image in the intended route, then check redo. |
| Is the feature available in your app surface today? | Gemini app, AI Studio, API, and third-party wrappers are separate contracts. | Verify the current help/status owner for that surface before assuming outage. |
| Is the route region or plan dependent? | Availability can vary and is volatile. | Treat any plan, quota, or availability wording as current-run only. |
Do not fix a Pro route issue by editing API request payloads unless the failed surface is actually AI Studio or the Gemini API. The article's API branch below is for developer requests, not consumer-app buttons.
Fix prompt and policy branches
When Gemini returns text but no image, or refuses without a clean API error, the problem may be prompt intent or policy boundary. The fastest test is not a longer prompt. It is a smaller prompt with clearer image intent.
Use this structure:
textCreate one image: [subject]. Style: [visual style]. Do not include text unless I explicitly ask for it. Return the image only.
Then remove variables that raise ambiguity:
- Replace a multi-step scene with one subject and one background.
- Remove brand, celebrity, copyrighted character, or private-person references if they are not essential.
- Avoid asking Gemini to "fix the previous failed output" until a clean base generation works.
- Do not ask for many aspect ratios, file formats, and edits in one prompt.
- If an uploaded image is involved, try one prompt without the upload and one direct edit with only the necessary file.
A policy-shaped failure should be rewritten, not brute-forced. Repeating the same prompt is especially weak here because the route owner is content boundary, not server capacity.
Fix AI Studio and Gemini API errors
Developer routes need a different checklist. Clearing the Gemini app cache will not fix a bad model ID, missing project permission, inactive billing path, exhausted quota, malformed payload, or a temporary 503.

As of the Google image generation docs checked on June 28, 2026, the current mapping is:
| Market-visible name | Official API model ID |
|---|---|
| Nano Banana 2 | gemini-3.1-flash-image |
| Nano Banana Pro | gemini-3-pro-image |
| Earlier Nano Banana lane | gemini-2.5-flash-image |
If your code still uses older tutorial strings with -preview, verify them against the current Google AI for Developers image generation docs before debugging other branches. A stale model string can look like a broader failure when it is just a request contract mismatch.
For API failures, read the error class first:
| Error or symptom | Meaning to test | First fix | Stop rule |
|---|---|---|---|
| 401 or 403 | Key, project, permission, or route access | Confirm the key, project, API enablement, account, and region | Do not retry until access is fixed |
429 RESOURCE_EXHAUSTED | Rate, quota, spend, or project limit branch | Check the project limit owner in AI Studio or the Google quota surface | Back off; repeated retries can consume more budget or hide the real bucket |
503 UNAVAILABLE | Temporary overload or downtime branch | Check status and retry policy; reduce request pressure | Do not treat it like a prompt problem |
| Text response but no image part | Request shape or prompt intent | Make image intent explicit and inspect response parts | Do not assume no-image means the model is down |
| Wrapper says "model failed" | Provider or transport layer may own the failure | Run the same prompt directly in Gemini app or API | Escalate to wrapper/provider only after direct-route comparison |
Google's Gemini API troubleshooting docs identify 429 as the limit branch and 503 as an overload or downtime branch. Google's rate-limit docs also say limits are applied per project, not only per API key, and active limits should be checked in AI Studio. That is why rotating keys without checking the project owner is usually the wrong first move.
For deeper API error coverage after the route split, use the Gemini image generation error, limit, and watermark reference, the Gemini image 429 rate-limit branch, or the Gemini 3 Pro Image 503 overloaded branch.
Fix wrapper, SDK, and provider-tool failures
Wrapper failures are easy to misread because the visible error often says the model failed. In practice, the failed owner may be an upload mapping, file-size boundary, provider tenant limit, SDK version, webhook timeout, model alias, or retry policy inside the wrapper.
Run this direct-route comparison before blaming Gemini:
- Save the exact prompt and input file.
- Run the same simplified request in the Gemini app if the failure was consumer-facing, or in AI Studio/API if the failure was developer-facing.
- If the direct route works, inspect the wrapper's model alias, payload field names, upload URL, MIME type, file size, and timeout.
- If the direct route fails the same way, move back to prompt, API, or status branch.
- Save provider logs before changing SDK versions or retry logic.
This is also where an optional gateway or provider route may become relevant, but only after the API branch is proven. A gateway can change billing, routing, logs, and support ownership. It does not turn a Gemini app-session problem into an API problem, and it is not Google official pricing, quota, or status.
When to stop, switch, or escalate
The most expensive troubleshooting mistake is changing every variable at once. You lose the signal and create a failure that no support team can reproduce.

Use this stop/switch/escalate rule:
| Signal | Stop doing this | Do this instead |
|---|---|---|
| 403 or permission wording | Stop retrying with the same credentials | Fix account, key, project, permission, or route access |
429 or RESOURCE_EXHAUSTED | Stop blind retry loops | Check project limits, reduce pressure, and follow rate-limit branch |
| Policy-shaped refusal | Stop repeating the same prompt | Rewrite the prompt around allowed content and clearer image intent |
| 503 or overload wording | Stop rewriting prompts as the first move | Check official status and reduce retry pressure |
| Wrapper-only failure | Stop changing the prompt first | Compare direct route and inspect wrapper payload/logs |
| Widespread route failure | Stop treating forum posts as proof | Check AI Studio status or the official owner for the failed surface |
Escalate with evidence, not a vague "Nano Banana is broken" report. The minimum evidence pack is:
- timestamp and timezone
- failed route: Gemini app, mobile app, AI Studio, API, wrapper, or provider
- account or project identifier that is safe to share with support
- exact prompt or a minimized reproduction prompt
- model ID if API is involved
- error code, message body, and request ID if available
- screenshot or server log
- one direct-route comparison result
- one same-surface retest result
That packet is what lets Google, a provider, or your own team decide whether the owner is account, project, quota, content policy, status, or wrapper transport.
Branch handoffs for deeper troubleshooting
The front-door recovery board for Nano Banana not working in Gemini should not replace deeper branch owners:
- If you only need current outage reasoning, use Is Nano Banana 2 Down?.
- If your only issue is API 429, use the Gemini image 429 rate-limit guide.
- If your issue is persistent 503 overload, use Fix Gemini 3 Pro Image 503 Overloaded.
- If your question is price, free access, or Nano Banana 2 vs Pro cost, use Nano Banana API Pricing.
- If you need Pro workflow context, use Nano Banana Pro how to use.
The practical rule is simple: classify the branch first, then open the deeper branch owner only when that branch is proven.
FAQ
Why is Nano Banana not generating images in Gemini?
The most common reason is that the failed route has not been identified. A Gemini app session, Pro redo route, prompt policy boundary, API project limit, wrapper payload, and status problem can all look like "not generating images." Pick the failed surface, run one matching fix, and retest once.
Is Nano Banana down today?
Do not infer that from a forum thread or a single failed prompt. Check the official status owner for the surface you are using, then compare one direct route. A 429, 403, prompt refusal, or wrapper failure is not the same as a live outage.
What does 429 mean for Gemini image generation?
429 RESOURCE_EXHAUSTED belongs to the rate, quota, spend, or project-limit branch. It is not proof that Nano Banana is down. Check the project limit owner, reduce retry pressure, and use the 429 branch reference if the branch persists.
What does 503 mean for Nano Banana or Gemini image errors?
503 UNAVAILABLE means the service is temporarily overloaded or unavailable for that route. Check status and retry policy before changing prompts or account settings. If it persists, move to the 503 overload reference.
Why does the API fail while the Gemini app works?
The app and API are separate contracts. The API can fail from model ID, key/project, billing, quota, payload, or region while the consumer app still works. Check the developer branch instead of clearing app cache.
Why does the Gemini app fail while the API works?
The app route can fail from session state, account route, Pro redo availability, UI rollout, or prompt interpretation while the API remains healthy. Start with app-session and route checks, then compare direct routes.
Should I switch to another provider when Nano Banana fails?
Only after branch diagnosis. A provider route can help if your proven problem is API routing, billing, logs, or integration ownership. It will not fix a Gemini app session, a blocked prompt, or a Pro route entitlement issue.
What should I save before contacting support?
Save timestamp, route, prompt, model, error code, request ID, screenshot or logs, one same-surface retest result, and one direct-route comparison. That evidence is more useful than a broad "not working" report.
