Skip to content

Gemini 3 models fail with "Invalid JSON payload received. Unknown name 'parameters'" error #8857

@lvsao

Description

@lvsao

OpenCode GitHub Issue Report

Issue Title

Gemini 3 models fail with "Invalid JSON payload received. Unknown name 'parameters'" error when using antigravity-auth plugin

Issue Description

When using google/antigravity-gemini-3-flash or google/antigravity-gemini-3-pro models, OpenCode fails with a 400 error due to invalid tool schema format for Gemini API.

Error Message

Invalid JSON payload received. Unknown name "parameters" at 'request.tools[0]': Cannot find field.
Status: 400
Requested Model: antigravity-gemini-3-flash
Effective Model: gemini-3-flash
Endpoint: https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal:streamGenerateContent?alt=sse

Tool Debug Payload (Problematic)

The tool schema being sent to Gemini contains an incorrectly formatted structure:

[{
  "functionDeclarations": [...],
  "parameters": {
    "type": "OBJECT",
    "properties": {
      "_placeholder": {
        "type": "BOOLEAN",
        "description": "Placeholder. Always pass true."
      }
    },
    "required": ["_placeholder"]
  }
}]

Expected Behavior

Tool schemas should be formatted according to Gemini API specifications, with:

  1. Proper type: "object" (lowercase)
  2. No _placeholder parameters
  3. No unsupported JSON Schema fields like $schema
  4. String-only enum values

Environment

  • OpenCode Version: v1.1.23 (latest)
  • Plugin: opencode-antigravity-auth@1.2.8
  • OS: Windows
  • Model: google/antigravity-gemini-3-flash (all variants fail)
  • Project: J:\apps\max-Translator\max-ai-omni-translator

Related Issues

Reproduction Steps

  1. Install opencode-antigravity-auth@beta plugin
  2. Configure google/antigravity-gemini-3-flash model
  3. Run: opencode run "Hello" --model=google/antigravity-gemini-3-flash
  4. Observe 400 error with "Unknown name 'parameters'" message

Workaround

Claude models (antigravity-claude-sonnet-4-5-thinking) work correctly with the same configuration.

Suggested Fix

Implement proper tool schema sanitization for Gemini API:

  1. Remove $schema field from tool parameter schemas
  2. Convert non-string enum values to strings
  3. Ensure type field uses lowercase values
  4. Remove placeholder parameters like _placeholder
  5. Validate schema against Gemini's expected format

See OpenCode PR #4538 for previous attempts at fixing similar issues.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions