Genace

Your use case is currently not supported. — Veo API 400 on lastFrame, extension or reference images

HTTP 400 INVALID_ARGUMENT Do not retry as-is

The exact error

Your use case is currently not supported.  Please refer to Gemini API documentation for current model offering.

The Gemini API refused a Veo request before any generation started. The message is generic: it does not name the parameter it objects to. In the reported cases, the request used one of Veo 3.1’s advanced modes (first and last frames, video extension, or reference images) with a combination of settings that mode does not accept.

What it means

The error comes back as HTTP 400 with status INVALID_ARGUMENT, as quoted in js-genai issue #1265 and python-genai issue #1981. Note the two spaces after the first sentence in the raw message; some log tools collapse them, so search on the first sentence alone.

Google’s Veo docs spell out constraints that are easy to miss. In the parameter table, durationSeconds “must be “8” when using extension, reference images or with 1080p and 4k resolutions” on Veo 3.1 and Veo 3.1 Fast. Extension has its own input rules: only Veo-generated videos, 720p, 9:16 or 16:9, 141 seconds or less, and generated or referenced within the last two days. The docs also say extension is available for Veo 3.1 and Veo 3.1 Fast only, not Veo 3.1 Lite.

The community reports line up with those rules:

  • First and last frames. In js-genai issue #1265 the reporter got this error calling veo-3.1-fast-generate-preview with image plus config.lastFrame. They later wrote that the cause was additional config, and that durationSeconds needed to be 8. Another commenter said the same 8-second requirement fixed it in the Python SDK.
  • Video extension. In python-genai issue #1981 the reporter extended a Veo video with duration_seconds=4, which the docs say must be 8 for extension. The discussion also covers passing a self-constructed Video object instead of the one returned by the first generation. The issue is still open, so treat both as possible causes rather than a confirmed one.
  • Reference images. In forum thread 111853 a user got this error for any request with reference_images on veo-3.1-generate-preview at 9:16. A reply said reference images supported only 16:9 at that time (December 2025) and that 9:16 support was being worked on. Check the current parameter table before assuming that still holds.

It has also been suggested that this error means a feature is not enabled for your project or region, or that it stands in for a safety refusal. None of the sources above confirm either. One user in thread 111853 said they got it after a few successful requests, which was not explained.

How to confirm it’s this

  • HTTP 400, status INVALID_ARGUMENT, returned when you submit, not while polling.
  • The request uses lastFrame, referenceImages, or video for extension.
  • Plain text-to-video on the same model and key works, as it did for the user in thread 111853. That points away from a key or model-access problem.

Fix

Change one setting at a time and resubmit, so you learn which constraint failed.

  1. Set durationSeconds to 8 for extension and reference images on Veo 3.1 and Veo 3.1 Fast, and for 1080p or 4k output. Users reported 8 also fixed first-and-last-frame requests.
  2. Check the model. Extension is documented for Veo 3.1 and Veo 3.1 Fast only, not Veo 3.1 Lite. For reference images, check the model columns of the current parameter table.
  3. For extension, pass the video from the previous operation. The docs say the input “should come from a previous generation, like operation.response.generated_videos[0].video”, and only videos generated or referenced in the last two days can be extended. Extension output is 720p only.
  4. For reference images, try 16:9. That was the fix given in thread 111853; confirm against the current docs.
  5. Keep lastFrame paired with image. The parameter table says lastFrame “must be used in combination with the image parameter”.

Retry or not

No. Google’s troubleshooting guide says not to retry client errors such as 400 because they indicate a problem with the request itself. The same payload will be rejected again. Fix the parameters and send a new request.

For agents, treat this as a configuration error: log the full request config (mode, model, duration, resolution, aspect ratio) with the error, because the message will not tell you which field was wrong.

When it’s not this

  • last_frame parameter is not supported in Gemini API. A different message that names last_frame explicitly; it has its own page.
  • Negative prompt is not supported in your use case. Similar wording, but it names the negative prompt. A forum user reports it when negative_prompt is combined with reference images.
  • fileUri isn’t supported by this model. A community guide in thread 111853 attributes it to attaching images by Files API URI. It is about how the image is sent, not about the mode.
  • The input video was not generated by Veo. Extension only accepts Veo output; there is a separate error for that.
  • Frame interpolation not allowlisted. A separate message that names the allowlist rather than the use case; see its page.

Error text last verified against the sources below on .

Where these facts come from