Skip to content

[BUG] StructuredOutput tool wraps data in 'output' field causing schema validation to fail #502

Description

@AgentWrapper

Bug Description

When using structured outputs with output_format, the StructuredOutput tool intermittently wraps user data in an {"output": {...}} field. Validation fails when the wrapper is present.

This is non-deterministic - same prompt can produce either format:

// Sometimes (works):
{"actions": [...]}

// Sometimes (fails validation):
{"output": {"actions": [...]}}

Impact

  1. ResultMessage.structured_output is None when wrapper is present
  2. Agent confusion - Claude sees conflicting validation errors and may simplify output (e.g., 47 items → 1 item)
  3. Flaky results - identical prompts succeed or fail randomly

Tool Response Error

Output does not match required schema: root: must have required property 'actions', root: must NOT have additional properties

This error confuses Claude because:

  • actions is "required" but exists inside output
  • Schema has additionalProperties: false, so output is invalid

Claude tried to "debug" by reducing output from 47 items to 1 item.

Environment

  • claude-agent-sdk==0.1.19
  • Python 3.11+

Related

Metadata

Metadata

Assignees

No one assigned

    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