[Outage] files.upload β†’ 503 Service Unavailabl

TL;DR

The Gemini Files API (POST /upload/v1beta/files) has been returning HTTP 503 with an empty error body for at least 2 hours, while models.generateContent continues to work normally. The failure is reproducible across two independent API keys (different GCP projects), multiple file types (MP3, PNG), and trivially small file sizes (~129 B PNG, ~4.5 KB MP3). Our production traffic from asia-northeast1 is affected.

Error shape (identical for every request)

{"error":{"message":"","code":503,"status":"Service Unavailable"}}


Note the empty message field β€” this makes it hard to tell whether the cause is a backend incident,
an undocumented quota, or something else. A non-empty message would help a lot.

Timeline (UTC)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚       Time       β”‚                                   Event                                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 2026-05-21 05:15 β”‚ First 503 in our logs (intermittent β€” some uploads still succeed)          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 2026-05-21 06:43 β”‚ Last successful files.upload in our logs. Goes to a hard outage from here. β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ 2026-05-21 07:15 β”‚ Still 503 on every probe at the time of writing                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

In the 05:15–07:15 UTC window we recorded 702 distinct upload failures spanning 84 unique workloads
and 11 Cloud Run instances from one project, plus an independent project (different API key)
producing the same 503.

Scope β€” what works, what doesn't

Endpoint: models.generateContent (gemini-2.5-flash, text prompt)
SDK call: genAI.models.generateContent(...)
Result: OK (~2.9s)
────────────────────────────────────────
Endpoint: files.upload (PNG, 129 B, image/png)
SDK call: genAI.files.upload(...)
Result: 503 in ~1.1s
────────────────────────────────────────
Endpoint: files.upload (MP3, 4.5 KB, audio/mpeg)
SDK call: genAI.files.upload(...)
Result: 503 after ~81s (SDK appears to be doing internal retries against the resumable-upload
  protocol before surfacing the error)
────────────────────────────────────────
Endpoint: Same probe with a second API key from a different GCP project
SDK call: same call
Result: 503, identical body

Everything points to a backend-side issue with the Files API specifically.

Environment

- SDK: @google/genai 1.43.0 (Node.js 24)
- Region the requests originate from: asia-northeast1 (also reproduced from a developer machine in
Korea)
- Two independent GCP projects, two API keys created in different consoles β€” both fail identically.

Minimal reproducer (Node + @google/genai)

import { GoogleGenAI } from "@google/genai";

const genAI = new GoogleGenAI({ apiKey: process.env.GEMINI_API_KEY! });
const t0 = Date.now();
try {
  const r = await genAI.files.upload({
    file: "probe.png",            // any small file
    config: { mimeType: "image/png" },
  });
  console.log("OK", Date.now() - t0, r.name);
} catch (err: any) {
  console.log("FAIL", Date.now() - t0, JSON.stringify(err));
}

Output right now (truncated):
FAIL 1082 {"error":{"message":"","code":503,"status":"Service Unavailable"}}

curl reproducer

KEY=YOUR_KEY
curl -X POST
"https://generativelanguage.googleapis.com/upload/v1beta/files?uploadType=media&key=$KEY" \
  -H "Content-Type: image/png" \
  --data-binary @probe.png -i

Returns HTTP/2 503 with the JSON body shown above.

Ask

1. Can someone confirm an incident on the Files API and post the status page link? I don't see a
corresponding entry on the public Google Cloud / AI Studio status pages yet.
2. Any ETA for recovery would help us decide whether to drain queues vs keep retrying.
3. Please consider returning a non-empty message field on these 503s β€” even a generic "backend
unavailable, retry with exponential backoff" would be vastly better than empty.

Happy to provide more logs, request IDs, or run additional probes on request. Thanks!

Experiencing this too, consistent across 3 projects

Same issue here, always 503.

Same issue here… always 503.

Same issue here, always 503

Same issue here. I was wondering if you have implemented any fallback behavior for file uploads, since every LLM provider handles file uploads differently. Let me know if you have any thoughts to share on this.

Same here experiencing intermittent outages since May 20. Are there any alternatives ?

Same issue - for smaller requests such as listing files I’m getting some limited response, but it always ends up hanging then raising a server error.

Same issue, getting 503s since 5:20am UTC tonight

Same here. Pretty annoying!

Same issue here! Still Unavailable.

same issue here! still unavailable and too slow

Same problem, my whole service is down…

Same here.

Our β€œFile storage quota per project” is sitting at 13.38%, so it shouldn’t be that.

The upload requests take 20+ seconds, but always resolve with 503 Service Unavailable

Same issue,

Has anyone used the priority interface, witch is googles fix for this issue??

Git issue:

@daniel_lublinsky Not sure if that would help here. We’re experience issues with file upload, not with inference using those uploaded files. (Of course, a file upload may trigger inference behind the scenes, I’m not sure…)

ops, me too, please help me…

Same issue here, always 503 :smiling_face_with_tear:

Are you having issues with file upload to context cache?

We had this issue this morning and I have a solution for it

Insted of using file.upload and referencing it in the cache

You can push the file bytes to the context cache directly - bypassing file.upload and it works

Same here. Calls are all returning 503