gemini-3.1-flash-image hits persistent 429s at ~7 concurrent requests, despite 100+/min quota shown in console

Project: esoteric-scarab-488508-..
Model: gemini-3.1-flash-image
SDK: google-genai, genai.Client(vertexai=True, api_key=...)

We run a production image pipeline calling generateContent on
gemini-3.1-flash-image. A controlled load test (10 images, burst of up to
7 concurrent generateContent calls) produced sustained 429 RESOURCE_EXHAUSTED errors that don’t match any limit visible in the Cloud
Console “Quotas and system limits” page or the Service Usage API.

What the quota console actually shows (queried directly via
serviceusage.googleapis.com/v1beta1/.../consumerQuotaMetrics, not guessed):

Metric Scope Limit
generate_requests_per_model (tier 1) 1/min/project/model 100
generate_content_paid_tier_2_requests 1/min/project/model 500
generate_content_paid_tier_3_requests 1/min/project/model 5000
api_requests (generic) 1/min/project/region unlimited (-1)

None of these are close to what actually failed.

What we observed:

  • 7 concurrent generateContent calls sent within 11 seconds.
  • 3–8 seconds later, our 5 client-side tracking buckets all logged a 429
    within a 2.1-second spread (we’ve since confirmed this is one shared
    resource, not 5 independent regions — removed our own client-side sharding).
  • Over the next 10.5 minutes: ~10 cycles of “everything gets 429’d, wait,
    retry, get 429’d again,” almost no sustained success window.
  • Result for that 1 burst of 7: 2 succeeded (200.8s / 311.2s to complete),
    5 failed — 3 via exhausted internal retries, 1 with a response that had
    no inline_data part despite a finish_reason, 1 that blew past our own
    420s client timeout while still retrying.
  • Baseline: concurrency capped at 2 → 2/2 succeeded cleanly, 167s / 213s.

Questions:

  1. Is there an undocumented concurrent in-flight request limit for
    gemini-3.1-flash-image specifically, separate from the per-minute quota
    shown in the console? What’s the actual safe number?
  2. Is this a per-project quota or shared backend capacity across customers?
  3. Is there a way to request provisioned/guaranteed throughput for this
    model?

Happy to share full timestamped logs if useful.

Hello @by_Leif ,

Could you please confirm whether you are using the Gemini API or Vertex AI?