Codex App: Invalid schema for function '_create_site' from connected App tool

Open 💬 2 comments Opened Jun 8, 2026 by vltansky

What happened?

Codex App fails a turn with this error:

Invalid schema for function '_create_site': schema must have type 'object' and not have 'oneOf'/'anyOf'/'allOf'/'enum'/'not' at the top level.

This looks like the same class of issue as #23318, but with a different generated function name (_create_site instead of _search_content). I did not find an existing issue that mentions _create_site specifically.

Environment

  • Surface: Codex App / Desktop
  • Account type: ChatGPT Enterprise
  • Platform: macOS 26.0.1, arm64

Expected behavior

Codex should either normalize/reject the connected App tool schema before sending the request, or clearly identify the affected App/connector so the user can disconnect or reconnect it.

Notes

Screenshot error text is included above. The broad related issue is #23318.

Feedback ID: 019ea716-45cc-76b1-8186-34c5643cadc9

View original on GitHub ↗

2 Comments

crclark · 2 months ago

I'm hitting this issue, and it permanently breaks the codex conversation. Even exiting and resuming results in hitting this error forever.

The root cause is that Codex preserves root-level JSON Schema keywords like anyOf from discovered tool schemas and forwards them unchanged as Responses API function parameters, but the Responses API rejects those keywords at the parameters root. Codex then retries the same conversation with the same invalid tool schema still in context, so every retry rebuilds and resubmits an unchanged request that the Responses API rejects again.

Here is a branch with two commits: a test that repros the bug, and a fix.

pyeongkim91-tech · 2 months ago

Workaround confirmed on macOS / Codex App:

In ~/.codex/config.toml:

[features]
apps = false

[apps.sites]
enabled = false

Then fully quit and restart Codex App.
After this, a new thread can answer a simple prompt like “ping만 답해줘” again.
This suggests the failure is from the Apps/Connectors layer, likely Sites, not MCP, Skills, or user plugins. The request fails before the model answers because the _create_site tool schema is included in the tool list and rejected during schema validation.
Tradeoff: this disables Apps/Sites, so it is only a workaround, not a real fix.