We are investigating a persistent HTTP 400 invalid_request response from
POST /v1beta/interactions using gemini-3.8-flash and Python
google-genai==2.19.0 / httpx==0.28.1.
The request uses one user_input step containing text, system_instruction, and
response_format={"type":"text","mime_type":"application/json","schema":...}.
It has store=false, background=false, and tools=[], with no previous
interaction ID, deprecated sampling parameters, or external file URLs.
The test input is synthetic and project billing is enabled.
Our JSON Schema contains internal $defs/$ref, nullable anyOf, enums,
additionalProperties=false, bounds, and const, default, minLength,
maxLength, and pattern. Local checks found no dangling or external references.
The published request-field constraints appear to match, but we recognize that
offline validation cannot establish the model’s server-side Schema compatibility.
Our privacy filter retained only HTTP 400 / invalid_request, not the detailed
message or request ID. We cannot identify the specific rejected field from it.
We have paused further inference calls rather than repeat the same request.
Could the team clarify:
- Whether this model/endpoint has additional restrictions on the Schema keywords
above or on stateless structured output? - The documented distinction between unsupported Schema keywords being ignored
and causinginvalid_request? - The minimum non-sensitive metadata needed to investigate this without publishing
prompts, document contents, credentials, or a complete private request body?
We are seeking contract clarification first, not claiming a confirmed SDK/server bug.