Skip to content

[Bug]: HTTP 400 — tools.profile=coding sends read tool schema without additionalProperties: false, rejected by OpenAI and GitHub Copilot providers #60821

@orshemtov

Description

@orshemtov

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

When tools.profile is set to coding (the default after running the Docker setup wizard), every agent turn fails with HTTP 400 because the built-in read tool schema is sent to the provider without additionalProperties: false, which OpenAI and GitHub Copilot providers require.

Steps to reproduce

  1. Run the Docker setup wizard (./scripts/docker/setup.sh) — it sets tools.profile: "coding" by default.
  2. Start the gateway (docker compose up -d openclaw-gateway).
  3. Open the dashboard and send any message (e.g. "Hi") using any OpenAI or GitHub Copilot model.
  4. Observe the error immediately — no tool call is needed to trigger it.

Expected behavior

The read tool schema (and all built-in coding-profile tool schemas) should have additionalProperties: false injected before the request is sent to providers that enforce strict JSON Schema, so tool calls succeed normally.

Actual behavior

Every turn fails with:

HTTP 400: Invalid schema for function 'read': In context=(), 'additionalProperties' is required to be supplied and to be false.

The error occurs on the first turn regardless of message content. Switching to a different provider (e.g. github-copilot/claude-sonnet-4.6) does not resolve it — the same 400 is returned.

OpenClaw version

2026.4.4

Operating system

macOS 15 (host), Docker container (node:24-bookworm)

Install method

Docker (./scripts/docker/setup.sh + docker compose)

Model

openai/gpt-5.4 (primary), also reproduced with github-copilot/claude-sonnet-4.6

Provider / routing chain

openclaw -> openai
openclaw -> github-copilot

Additional provider/model setup details

  • tools.profile: "coding" set in ~/.openclaw/openclaw.json (written by the setup wizard)
  • No MCP servers configured
  • No custom tool overrides
  • Reproduced with both primary and fallback models across two different providers

Logs, screenshots, and evidence

Error shown in the Control UI chat view on every turn:

HTTP 400: Invalid schema for function 'read': In context=(), 'additionalProperties' is required to be supplied and to be false.

The error is consistent across all turns and both tested providers. Switching providers does not help.

Impact and severity

  • Affected: Any user who installs via Docker (the setup wizard sets tools.profile: "coding" by default) and uses OpenAI or GitHub Copilot providers
  • Severity: Complete blocker — no messages can be processed at all
  • Frequency: 100% of turns, from the very first message
  • Consequence: The gateway is fully non-functional out of the box with the default Docker setup

Additional information

Workaround: set tools.profile to a profile that does not include the read tool, or disable the read tool explicitly:

docker compose run --rm openclaw-cli config set tools.profile default
docker compose run --rm openclaw-cli restart

Related issues: #29416, #58084 (similar schema validation failures but for different tools/contexts).

The root cause appears to be that the coding profile's built-in read tool schema is missing additionalProperties: false in the schema normalization path before it is serialized into the provider request. The AGENTS.md notes that native OpenAI-family routes default tool schemas to strict mode — but the normalization that injects additionalProperties: false does not appear to cover the built-in read tool.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions