allow_all for personGeneration is currently not supported. — Veo and Imagen API person generation error
The exact error
allow_all for personGeneration is currently not supported.
What it means
The request set personGeneration to allow_all, and the service will not accept that value for this request. This is a parameter validation error, not a safety filter result: nothing was generated.
Google’s Veo docs give two rules that decide which value is accepted:
- By mode. The parameter table on the Veo page lists text-to-video and video extension as
"allow_all"only, and image-to-video, interpolation (first and last frame) and reference images as"allow_adult"only. - By region. Under Limitations, the same page says that in EU, UK, CH and MENA locations,
allow_adultis the only allowed value forpersonGeneration.
So allow_all fails in two situations: the request is an image-based mode, or it comes from one of the listed locations.
The error is not specific to Veo. In SillyTavern issue #4824, a user on a Tier 1 Google AI Studio key got this exact message as a 400 INVALID_ARGUMENT from Imagen, because the app hardcoded allow_all. The reporter said Veo still accepted allow_all for them at the time. A SillyTavern maintainer pointed to a note in Google’s Imagen docs saying allow_all was not allowed in EU, UK, CH and MENA locations, and the reporter confirmed they were in the EU. The maintainer also remarked that Vertex AI and AI Studio had behaved differently. That is a community observation, not something Google documents.
Google’s Imagen page now says Imagen models are shut down in the Gemini API and points to Nano Banana instead. If you still see this message from an Imagen call, the model name is the bigger problem.
How to confirm it’s this
- The response is HTTP 400 with status
INVALID_ARGUMENT, and the message namesallow_all. - Log the outgoing request and check which mode it is. If it carries an
image,lastFrameorreferenceImages, the Veo table only listsallow_adultfor it. - If it is plain text-to-video or an extension, check where the calling server runs as well as where you are. If either is in the EU, UK, Switzerland or the MENA region, the regional rule is the likely cause. The docs say “locations” without defining how the location is determined.
- If
allow_allis hardcoded in a library or tool you use, as it was in SillyTavern, the error appears for every affected user regardless of the prompt.
Fix
- Stop hardcoding
allow_all. MakepersonGenerationa setting, or choose it per request. SillyTavern closed issue #4824 by adding a config setting that overrides the value it used to hardcode. - For image-to-video, interpolation and reference images, send
allow_adult. That is the only value the Veo table lists for these modes. - For text-to-video from a restricted location, the docs do not spell out what to send. In Google AI Developers Forum thread 181139, about the opposite error, a forum moderator said text-to-video requests can set
allow_allor omit the parameter. The docs do not say which default applies when the parameter is omitted in a restricted location, so test that on your own account before you rely on it. - Respect the regional rule. It is a policy decision by Google about where adult-only person generation applies. Do not route traffic through another location to get
allow_allback.
Retry or not
No. The same parameters from the same location get the same 400. Google’s docs describe both rules as fixed limitations, with no mention of them being temporary. An agent should treat this as a configuration error: change personGeneration or remove it, then send a new request. Better still, pick the value before sending, from the request mode and the table above, so the 400 never happens. No backoff helps here, because nothing about the request is transient.
When it’s not this
allow_adult for personGeneration is currently not supported.This is the mirror image. It usually means the request was treated as text-to-video, often because the input image was not sent.User location is not supported for the API use.That is a 400FAILED_PRECONDITIONfor the whole API, not one parameter value.- A safety block after generation. If the job ran and returned no video, you are looking at a filter result, not a parameter check.
Related errors
- allow_adult for personGeneration is currently not supported
- User location is not supported
- Veo videos filtered out
- Veo celebrity likeness
- Use case not supported
Error text last verified against the sources below on .