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
generateContentcalls 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
noinline_datapart despite afinish_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:
- Is there an undocumented concurrent in-flight request limit for
gemini-3.1-flash-imagespecifically, separate from the per-minute quota
shown in the console? What’s the actual safe number? - Is this a per-project quota or shared backend capacity across customers?
- Is there a way to request provisioned/guaranteed throughput for this
model?
Happy to share full timestamped logs if useful.