File Search uploadToFileSearchStore returns 500 INTERNAL on paid billing account (works on free tier)

File Search document ingestion (file_search_stores.upload_to_file_search_store, and also
belongs to a project under my paid prepaid billing account. The exact same code and the exact same PDF work fine
with an API key from a free-tier account.

Affected (paid) billing account: 017705-5E6ED3-F658.. (region: Peru)
Affected projects: gen-lang-client-01004271.., gen-lang-client-05282142..
Working (free-tier) account: a separate Google account — same code/file → success.

What WORKS on the same paid account (so it’s not permissions/setup):

  • file_search_stores.create / get / list → OK
  • models.embed_content (gemini-embedding-001) → OK
  • models.generate_content (chat + function calling) → OK
  • ONLY File Search document ingestion (upload/import) → 500 INTERNAL

Reproduction:

  1. client.file_search_stores.create(config={‘display_name’: ‘x’}) → OK
  2. client.file_search_stores.upload_to_file_search_store(file=‘small.pdf’, file_search_store_name=store.name,
    config={‘display_name’: ‘x’}) → 500 INTERNAL
    (Also tried with explicit embedding_model gemini-embedding-001 / gemini-embedding-2 → still 500.)

Details:

  • SDK: google-genai 2.7.0 (also reproduced on 1.52.0)
  • File: ~32 KB PDF
  • Prepaid balance is funded (PEN 99.99) → not a credit/quota issue
  • Error: {‘error’: {‘code’: 500, ‘message’: ‘Internal error encountered.’, ‘status’: ‘INTERNAL’}}

This looks like a server-side issue specific to File Search ingestion on this paid billing account. The
free-tier-works / paid-fails contrast is fully reproducible. Please advise.

We are looking into this and working on a fix

I have also been having issues with ingestion and it’s a similar billing setup. I effectively cannot ingest files right now as I don’t want to do it an a different account.