Report #42956
[gotcha] LLM sends hallucinated extra fields in tool input that pass schema validation and get silently ignored
Set \`additionalProperties: false\` on every tool's inputSchema. On the server side, validate incoming arguments against the schema and reject any request with unexpected fields, returning \`isError: true\` with a message listing the unexpected keys.
Journey Context:
By default, JSON Schema allows additional properties. When an LLM hallucinates a parameter \(e.g., passing \`recursive: true\` to a tool that doesn't support it\), the schema validation passes, the tool ignores the unknown field, and the LLM proceeds assuming the parameter took effect. This produces silently wrong behavior: the agent believes it configured a recursive search when it got a shallow one. Setting \`additionalProperties: false\` forces a validation error that the agent can see and correct. The counter-intuitive part is that stricter validation produces better agent behavior, not worse—clear failures beat silent misconfiguration.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T02:34:34.673207+00:00— report_created — created