Veo 3.1 generation succeeds but operation retrieval returns 403 PERMISSION_DENIED (6/6 operations)

Hello,

We are experiencing a reproducible issue with the Gemini Developer API and Veo 3.1.

Our project can successfully access the Veo 3.1 model and submit video-generation requests. However, subsequent retrieval of the returned long-running operation fails with HTTP 403 PERMISSION_DENIED.

Project details:

  • Project ID: he-studio-automation
  • Project Number: 331305143..
  • Model: veo-3.1-generate-preview
  • API: generativelanguage.googleapis.com
  • Billing: Active, Tier 1 / Prepaid
  • SDK: google-genai==2.25.0

What we have verified:

  • Generative Language API is enabled.
  • The API key belongs to project 331305143..
  • The API key is restricted to generativelanguage.googleapis.com.
  • The API key stored in Secret Manager exactly matches the API-key resource used by the application.
  • GET /v1beta/models/veo-3.1-generate-preview returns HTTP 200.
  • GET /v1beta/models/veo-3.1-generate-preview/operations returns HTTP 200.
  • Veo generation requests are accepted and return operation names.
  • Returned operation names are persisted exactly as received.
  • Retrieving individual returned operations subsequently returns HTTP 403.

We currently have six real Veo operation IDs showing the same behavior:

  • fvwpdqyydj3e
  • gg0tlepmbuhw
  • jnroew98xgfz
  • pcuoc0oex019
  • yp6dg5k1o3le
  • z0llk6axmoxx

For all six operations, retrieval returns:

403 PERMISSION_DENIED
“You do not have permission to access the Operation with ID [operation_id] or it may not exist.”

Representative request:

GET https://generativelanguage.googleapis.com/v1beta/models/veo-3.1-generate-preview/operations/gg0tlepmbuhw

The request uses the same project API key via x-goog-api-key that successfully returns HTTP 200 for the Veo 3.1 model endpoint.

The AI Studio project corresponds to project number 331305143316, billing is attached, the project is Tier 1 / Prepaid, and we do not see any visible restriction or suspension.

We also confirmed that other Gemini API keys visible in our account belong to a different Google Cloud project. Our application is using the API key belonging to project 331305143…

The key point is:

Veo generation submission succeeds and returns an operation name, but the returned long-running operation cannot subsequently be retrieved with the same project/API key.

Could the Gemini/Veo team please check whether there is a project-side or service-side issue involving Veo long-running operation ownership, authorization, entitlement, or operation retrieval?

We can provide additional non-sensitive request/response details if needed.

Thank you.

Hello @mehmet_palabiyik ,

Were these operation IDs polled more than 2 days after the video generation requests were submitted? Generated videos and their operations are stored on the server for 2 days, after which they are removed and subsequent retrieval requests return 403 PERMISSION_DENIED (... or it may not exist).

Please try the below steps:

  • Poll the operation status immediately after starting the video generation job and download the video within 2 days of generation, as noted in the Veo limitations documentation.
  • Ensure the exact operation name string returned by the initial request is passed without character substitutions (for example, l vs. 1 or u vs. o), as querying a non-existent operation ID also returns this 403 error.