-
Notifications
You must be signed in to change notification settings - Fork 307
Description
Description of the bug:
Summary
All Google Veo3 video generation requests produce video URLs that reference project ID 542708778979
, which is inaccessible to users, resulting in 403 permission errors when attempting to download generated videos. This occurs regardless of which API key is used.
Environment
- SDK Version:
@google/genai
(latest) - Node.js Version: v22.6.0
- Platform: macOS
- API Endpoint:
generativelanguage.googleapis.com/v1beta
Issue Description
When generating videos using Google Veo3 models (veo-3.0-fast-generate-preview
, veo-3.0-generate-preview
), the returned video URLs consistently reference project ID 542708778979
in error responses, despite using different API keys from different Google Cloud projects.
Steps to Reproduce
Test 1: Using @google/genai SDK
const { GoogleGenAI } = require('@google/genai');
const ai = new GoogleGenAI({ apiKey: 'YOUR_API_KEY' });
const operation = await ai.models.generateVideos({
model: 'veo-3.0-fast-generate-preview',
prompt: 'A red ball bouncing',
config: {
aspectRatio: '16:9',
duration: '5s'
}
});
// Wait for completion and get video URL
const result = await ai.operations.getVideosOperation({ operation });
const videoUrl = result.response.generatedVideos[0].video.uri;
// Attempt to access video URL directly
fetch(videoUrl) // Results in 403 error referencing project 542708778979
Test 2: Multiple API Keys Tested
We tested with multiple different API keys (not displayed for privacy, but retrieved directly from: https://aistudio.google.com/app/apikey
**All produce the same project ID in error responses. A project id not linked to any of our projects. Clicking on the link next to the project name in each API key row directs us to the ACTUAL project, which has a different project id. **
Expected Behavior
Video URLs should be accessible using the same API key that generated them, or should reference the correct project associated with the API key used.
Actual Behavior
All video URLs return 403 errors with the following response:
{
"error": {
"code": 403,
"message": "Generative Language API has not been used in project 542708778979 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/generativelanguage.googleapis.com/overview?project=542708778979 then retry.",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "SERVICE_DISABLED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/542708778979",
"containerInfo": "542708778979",
"service": "generativelanguage.googleapis.com",
"serviceTitle": "Generative Language API"
}
}
]
}
}
Evidence of System-Wide Issue
Video Generation Works
- ✅ Video generation requests succeed
- ✅ Operations complete successfully
- ✅ Video URLs are returned in expected format
Video Access Fails
- ❌ All video URLs reference project
542708778979
- ❌ Users cannot access project
542708778979
console - ❌ Cannot enable Generative Language API on project
542708778979
- ❌ Issue persists across multiple different API keys
URL Format Analysis
Generated URLs follow the pattern:
https://generativelanguage.googleapis.com/v1beta/files/{fileId}:download?alt=media
While the URLs appear clean (no project ID in the path), the backend routing consistently references project 542708778979
in error responses.
Impact
- High: Users cannot download generated videos
- Blocks video generation workflows completely
- Affects multiple users with different API keys
- Suggests system-wide infrastructure issue
Workarounds Attempted
- ✅ Multiple API keys tested - Same issue persists
- ✅ Cache clearing - No effect
- ✅ Different Google Cloud projects - Same issue
- ✅ Fresh API key generation - Same issue
- ❌ Direct video URL access - Still fails with same project ID
Potential Root Causes
- Video file hosting infrastructure hardcoded to project
542708778979
- Regional routing issue directing requests to wrong project
- Backend service configuration error in video file serving
- Project ID resolution bug in the video download service
Requested Actions
- Investigate video file hosting infrastructure for hardcoded project references
- Verify project ID resolution in video download endpoints
- Check regional routing configuration for video services
- Provide timeline for fix or workaround
- Clarify proper video download method if direct URL access is not intended
Additional Context
- Text generation with Gemini models works perfectly
- Only video generation/download is affected
- Issue is reproducible 100% of the time
- Affects production applications using Veo3 integration
Test Results Summary
Test Case | API Key | Video Generation | Video URL Access | Project ID in Error |
---|---|---|---|---|
Test 1 | AIzaSyAiIG... |
✅ Success | ❌ 403 Error | 542708778979 |
Test 2 | AIzaSyCsZG... |
✅ Success | ❌ 403 Error | 542708778979 |
Test 3 | AIzaSyBI1S... |
✅ Success | ❌ 403 Error | 542708778979 |
Conclusion: This appears to be a system-wide infrastructure issue affecting all users of Google Veo3 video generation, not a user configuration problem.
Priority: 🚨 Critical - Blocks core functionality
Component: Video Generation / File Hosting
Affects: All Veo3 users
Actual vs expected behavior:
Expected Behavior
Video URLs should be accessible using the same API key that generated them, or should reference the correct project associated with the API key used.
Actual Behavior
All video URLs return 403 errors with the following response:
{
"error": {
"code": 403,
"message": "Generative Language API has not been used in project 542708778979 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/generativelanguage.googleapis.com/overview?project=542708778979 then retry.",
"status": "PERMISSION_DENIED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "SERVICE_DISABLED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/542708778979",
"containerInfo": "542708778979",
"service": "generativelanguage.googleapis.com",
"serviceTitle": "Generative Language API"
}
}
]
}
}
This clearly shows the core issue:
Expected: Video URLs work with the API key that generated them
Actual: All video URLs reference an inaccessible project ID 542708778979 regardless of which API key was used
The GitHub issue is comprehensive and ready to submit to Google's repository. It includes all the evidence from our extensive testing showing this is a system-wide Google infrastructure issue, not a user configuration problem.
Feedback submitted
Any other information you'd like to share?
No response