I received two HTTP 400 responses while trying to analyze one short MP4 with embedded audio through the Gemini Interactions API. No video analysis was returned. I would appreciate clarification of the validation rules before making another request. The two attempts used the same prepared JSON payload. The second attempt changed only client-side error diagnostics. There were no automatic retries. I am not claiming that the cause has been identified. Configuration used in both attempts: - Endpoint: https://generativelanguage.googleapis.com/v1beta/interactions - Model: gemini-3.8-flash - Direct HTTP/JSON using Python’s standard library, without SDK request conversion. - One inline video/mp4, approximately 33.16 seconds, 4,347,343 bytes, with its original embedded audio. - Video block: processing={“type”:“static”,“fps”:4}, with resolution=“medium” at the VideoContent level. - A text instruction follows the video block. There are no clipping offsets and no separate audio upload. - Standard service tier, synchronous response, no tools. - JSON request size: 5,807,006 bytes. Local base64 decoding and comparison with the original MP4 hash succeeded. This does not prove server-side media acceptance. The only preserved error-message fragment from the second attempt is: ```text [REDACTED] cannot be set [REDACTED] [REDACTED] is static. ``` These redactions were introduced by my local diagnostic filter, not by Google. That filter was too aggressive and removed the parameter name and conditional words. The original error body was not retained. I therefore do not know which parameter was rejected, the complete condition, or whether the missing connector was “when”, “unless”, or something else. No reliable provider reason code or field violation was preserved. The following is an illustrative, sanitized request skeleton for discussion only. It is NOT an executable reproduction and has NOT been submitted. The video, full prompt and system instruction are omitted. The original response schema is replaced here by {“type”:“object”}; this simplified schema was NOT used in either failed attempt and has NOT been tested. ```json { “model”: “gemini-3.8-flash”, “store”: false, “stream”: false, “background”: false, “service_tier”: “standard”, “system_instruction”: “<SYSTEM_INSTRUCTION_OMITTED>”, “input”: [ { “type”: “video”, “name”: “video”, “mime_type”: “video/mp4”, “resolution”: “medium”, “processing”: {“type”: “static”, “fps”: 4}, “data”: “<VIDEO_DATA_OMITTED>” }, { “type”: “text”, “text”: “<ORIGINAL_TECHNICAL_PROMPT_OMITTED>” } ], “generation_config”: { “max_output_tokens”: 16384, “thinking_level”: “low”, “thinking_summaries”: “none”, “tool_choice”: “none” }, “response_format”: { “type”: “text”, “mime_type”: “application/json”, “schema”: {“type”: “object”} } } ``` The actual response schema used objects, arrays, nullable types, enums, required, additionalProperties, minItems/maxItems and local $ref references to two $defs. It contained 76 property definitions and 28 local references, with an expanded node depth of 5. Those are local measurements, not a claim of compatibility with Google’s schema compiler. Documentation checked on 20 October 2026: - The [video understanding guide](https://ai.google.dev/gemini-api/docs/video-understanding) shows custom fps inside processing with type=“static”. I am therefore not assuming that fps and static are inherently incompatible. - The [Interactions API reference](https://ai.google.dev/api/interactions-api) describes the static processing object and the VideoContent.resolution field, including “medium”. The guide also uses the name media_resolution, so I would welcome clarification of the exact wire-format name for this endpoint. - The [structured output guide](https://ai.google.dev/gemini-api/docs/structured-output) documents the response_format wrapper and a recursive $ref example, while warning about schema complexity. I have not established whether the full schema above is accepted for this model. My questions: 1. Which property or parameter interaction could produce a validation message ending in “is static” with this configuration? Could you clarify the complete validation rule, rather than infer the missing words from the redacted fragment? 2. Is the combination of processing={“type”:“static”,“fps”:4} and resolution=“medium” (both on the video content object) supported for inline video on this model and endpoint? Are there model-specific fps or resolution restrictions, or a difference in the documented field names? 3. Could generation_config or response_format, including local $defs/$ref and array bounds, impose a relevant restriction here? 4. What is the smallest API-compliant change, if any, needed to retain analysis across the entire video duration and its embedded audio, without clipping the ending or removing audio? Please distinguish a documented correction from an exploratory workaround. I understand that the lost diagnostic details may prevent a definitive diagnosis of the two past responses. I am requesting clarification of the contract before considering any further test, not reporting a confirmed backend bug