You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
No open issue currently captures: Vertex Veo + proxy status/content ignore request-level vertex_project + #18854 absent from main.
What happened?
LiteLLM Proxy Video API for Vertex AI (Veo):
POST /v1/videos can succeed when Vertex project/credentials are available for that call (request params, env, or deployment config).
GET /v1/videos/{video_id} (status) and GET /v1/videos/{video_id}/content (download) fail with:
vertex_project is required for Vertex AI video generation.
Set it via VERTEXAI_PROJECT or pass as parameter.
(or the related DefaultCredentialsError / missing-credentials path, depending on config)
Passing vertex_project / vertex_location again on status/content via query params, headers, or body does not help. Those endpoints do not re-apply request-level Vertex params; they rely on resolving a deployment from the video id and injecting config.
Expected: generate → poll → download should use the same Vertex deployment credentials as generation, without re-supplying project/credentials on every status/content call. Proxy docs currently show status/content with only the virtual key, which implies automatic credential restore.
Steps to Reproduce
Configure LiteLLM Proxy with a Vertex Veo model, for example:
curl -X POST "http://localhost:4000/v1/videos" \
-H "Authorization: Bearer sk-1234" \
-H "Content-Type: application/json" \
-d '{ "model": "veo-3", "prompt": "A red ball bouncing once on a white floor", "seconds": "4", "size": "1280x720" }'
Poll status and download content using only the returned video_id (as docs show):
Observe status/content fail with vertex_project is required / missing credentials, even when re-passing:
curl -X GET "http://localhost:4000/v1/videos/{video_id}?vertex_project=my-gcp-project&vertex_location=us-central1" \
-H "Authorization: Bearer sk-1234"
Relevant log output
litellm.APIConnectionError: vertex_project is required for Vertex AI video generation.
Set it via environment variable VERTEXAI_PROJECT or pass as parameter.
File ".../litellm/videos/main.py", line ..., in avideo_status
File ".../litellm/llms/custom_httpx/llm_http_handler.py", line ..., in async_video_status_handler
File ".../litellm/llms/vertex_ai/videos/transformation.py", line ..., in get_complete_url
ValueError: vertex_project is required for Vertex AI video generation.
Related historical form (same family):
google.auth.exceptions.DefaultCredentialsError: Your default credentials were not found.
Root cause notes (optional analysis)
Status/content use resolve_model_name_from_model_id so the router can inject litellm_params (including vertex_project / credentials) from the model config.
accepting custom_llm_provider in resolve_model_name_from_model_id
matching provider-prefixed and wildcard deployments (vertex_ai/*)
passing provider_from_id from video_status / video_content / video_remix
#18854 was merged into a staging branch on 2026-01-15, then removed by the bulk staging revert the next day (Revert "Litellm staging 01 15 2026"). Those changes are not present on current main:
resolve_model_name_from_model_id has no custom_llm_provider
no wildcard Strategy 4 / pattern_router match for video id resolve
video status/content still call the old single-arg resolver
Check for existing issues
Related prior reports (same family, not an exact open Vertex re-open of the #18854 loss):
No open issue currently captures: Vertex Veo + proxy status/content ignore request-level
vertex_project+ #18854 absent from main.What happened?
LiteLLM Proxy Video API for Vertex AI (Veo):
POST /v1/videoscan succeed when Vertex project/credentials are available for that call (request params, env, or deployment config).GET /v1/videos/{video_id}(status) andGET /v1/videos/{video_id}/content(download) fail with:(or the related
DefaultCredentialsError/ missing-credentials path, depending on config)Passing
vertex_project/vertex_locationagain on status/content via query params, headers, or body does not help. Those endpoints do not re-apply request-level Vertex params; they rely on resolving a deployment from the video id and injecting config.Expected: generate → poll → download should use the same Vertex deployment credentials as generation, without re-supplying project/credentials on every status/content call. Proxy docs currently show status/content with only the virtual key, which implies automatic credential restore.
Steps to Reproduce
video_id(as docs show):vertex_project is required/ missing credentials, even when re-passing:Relevant log output
Related historical form (same family):
Root cause notes (optional analysis)
Status/content use
resolve_model_name_from_model_idso the router can injectlitellm_params(includingvertex_project/ credentials) from the model config.PR #18854 fixed this for wildcard models by:
custom_llm_providerinresolve_model_name_from_model_idvertex_ai/*)provider_from_idfromvideo_status/video_content/video_remix#18854 was merged into a staging branch on 2026-01-15, then removed by the bulk staging revert the next day (
Revert "Litellm staging 01 15 2026"). Those changes are not present on current main:resolve_model_name_from_model_idhas nocustom_llm_providerpattern_routermatch for video id resolveRequested fix:
video_statusandvideo_contentresolve provider + model and inject the samevertex_project/ location / credentials as generationvertex_ai/*What part of LiteLLM is this about?
Proxy
What LiteLLM version are you on?
v1.86.1
Twitter / LinkedIn details
No response