Gemini Flash Image (gemini-2.5-flash-image) no longer working: RPM limit errors

I am on a Paid Tier 1 and using the proper API key. The gemini-2.5-flash-image-preview API was working fine until today. Now it’s returning:
`ERROR: Gemini image generation failed {“attempt”:1,“status”:429,“body”:"{\n \“error\”: {\n \“code\”: 429,\n \“message\”: \"You exceeded your current quota, please check your plan and billing details. limit: 0, model: gemini-2.5-flash-preview-image\\n* Quota exceeded for metric: generate_content_free_tier_requests, limit: 0, model: gemini-2.5-flash-preview-image`

I thought this might be because it’s being deprecated next month so I switched to gemini-2.5-flash-image, i.e. https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent and it’s returning the same error!

This is surprising because the error is still mentioning “model: gemini-2.5-flash-preview-image” even though I’m no longer using this model! Also surprising is that it mentions “free tier limit” even though I’m on a paid Tier 1.

Please help!
Thanks,

Ian

I created a new API key (also paid Tier 1) and tested via curl with the same result.

This is a Google-side misconfiguration or API bug.

Here are my console logs:

```
ian@Mac Desktop % API_KEY=“[REDACTED]”

MODEL=“gemini-2.5-flash-image”

ENDPOINT=“https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent

echo “ENDPOINT = $ENDPOINT”

curl -i -sS -X POST “${ENDPOINT}” \

-H “x-goog-api-key: ${API_KEY}” \

-H “Content-Type: application/json” \

-d '{

"contents": \[{

  "parts": \[

    { "text": "Create a picture of a nano banana rocket in space" }

  \]

}\],

"generationConfig": {

  "imageConfig": {

    "aspectRatio": "1:1"

  }

}

}’

ENDPOINT = https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent

HTTP/2 429

vary: X-Origin

vary: Referer

vary: Origin,Accept-Encoding

content-type: application/json; charset=UTF-8

date: Thu, 04 Dec 2025 23:30:52 GMT

server: scaffolding on HTTPServer2

x-xss-protection: 0

x-frame-options: SAMEORIGIN

x-content-type-options: nosniff

server-timing: gfet4t7; dur=72

alt-svc: h3=“:443”; ma=2592000,h3-29=“:443”; ma=2592000

accept-ranges: none

{

“error”: {

"code": 429,

"message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, head to: https://ai.google.dev/gemini-api/docs/rate-limits. To monitor your current usage, head to: https://ai.dev/usage?tab=rate-limit. \\n\* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_input_token_count, limit: 0, model: gemini-2.5-flash-preview-image\\n\* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-flash-preview-image\\n\* Quota exceeded for metric: generativelanguage.googleapis.com/generate_content_free_tier_requests, limit: 0, model: gemini-2.5-flash-preview-image\\nPlease retry in 7.588829772s.",

"status": "RESOURCE_EXHAUSTED",

"details": \[

  {

    "@type": "type.googleapis.com/google.rpc.Help",

    "links": \[

      {

        "description": "Learn more about Gemini API quotas",

        "url": "https://ai.google.dev/gemini-api/docs/rate-limits"

      }

    \]

  },

  {

    "@type": "type.googleapis.com/google.rpc.QuotaFailure",

    "violations": \[

      {

        "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_input_token_count",

        "quotaId": "GenerateContentInputTokensPerModelPerMinute-FreeTier",

        "quotaDimensions": {

          "location": "global",

          "model": "gemini-2.5-flash-preview-image"

        }

      },

      {

        "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",

        "quotaId": "GenerateRequestsPerMinutePerProjectPerModel-FreeTier",

        "quotaDimensions": {

          "location": "global",

          "model": "gemini-2.5-flash-preview-image"

        }

      },

      {

        "quotaMetric": "generativelanguage.googleapis.com/generate_content_free_tier_requests",

        "quotaId": "GenerateRequestsPerDayPerProjectPerModel-FreeTier",

        "quotaDimensions": {

          "model": "gemini-2.5-flash-preview-image",

          "location": "global"

        }

      }

    \]

  },

  {

    "@type": "type.googleapis.com/google.rpc.RetryInfo",

    "retryDelay": "7s"

  }

\]

}

}
```

Hi @Ian_Serfaty

We’ve pushed a fix that should resolve the problem. Please let us know if you are still experiencing any issues.

Thanks for your patience while we sorted this out!

Unfortunately it is still not working (status 429): You exceeded your current quota

Oddly, we are experiencing the same issue when using the Gemini Studio. As you can see in the first screenshot it’s complaining that I don’t have a paid project, yet when I visit the projects page I have a paid account on Tier 1.

I already rotated my API key. Do you think I should delete the unpaid project (“Gemini API”) as well?

This is very confusing because this setup was working perfectly until early December when 429 errors started occurring (see usage screenshot below).

Thanks for your help!

For those facing a similar issue, it turns out that billing got automatically disabled on our account when the free trial expired, even though we had a linked billing account. A billing admin had to assign a new billing account to our project on the GCP