Veo 3.1: operations.get returns 403 PERMISSION_DENIED after successful video generation

,

Hi Google Gemini API team,

I’m seeing a consistent 403 PERMISSION_DENIED when retrieving Veo 3.1 long-running operations with the Google GenAI Python SDK.

Environment:

  • google-genai: 2.25.0
  • Model: veo-3.1-generate-preview
  • API: Gemini Developer API
  • Python SDK: google.genai

Observed behavior:

  1. models.generate_videos() accepts the request successfully.
  2. A long-running operation is returned.
  3. When the returned operation is retrieved/polled using operations.get(), the request fails with:

403 PERMISSION_DENIED

This was reproduced consistently across 6/6 Veo 3.1 operations tested.

The important distinction is that video generation itself is accepted. The permission failure occurs when retrieving the operation after generation has started.

Expected behavior:

The operation returned by models.generate_videos() should be retrievable with operations.get() using the same authenticated client/project so its status can be polled and the generated video can subsequently be downloaded.

I also verified the SDK interfaces in google-genai 2.25.0 for:

  • models.generate_videos()
  • operations.get()
  • files.download()

Could you please confirm whether this is:

  1. an account/project permission or entitlement issue,
  2. a Veo 3.1 preview access restriction,
  3. an issue with long-running operation retrieval in the Gemini Developer API, or
  4. a different required authentication/configuration step for operations.get()?

I have intentionally omitted API keys, project identifiers, operation IDs, and other credentials from this public post.

Thank you.

Hello @mehmet_palabiyik .

To help us look into this, could you share your Project ID, one of the failing operation names with its approximate timestamp (UTC), and the code snippet you use to create and poll the operation via direct message?