AI EngineerGuide

Chat Completions function tools on GPT-6 Luna, GPT-6 Sol and GPT-5.6 need reasoning_effort none

Rejected Applies to gpt-6-luna, gpt-6-sol, gpt-5.6-* on the OpenAI Chat Completions.

OpenAI's docs describe this error but don't quote the exact message, so we don't either.

How to fix it

Set reasoning_effort: "none", or move to the Responses API to use tools with reasoning. GPT-5.6 defaults to medium, so leaving the field out isn’t enough.

Before
{
  "messages": [
    {
      "content": "Summarize this ticket.",
      "role": "user"
    }
  ],
  "model": "gpt-4o-2024-08-06",
  "tools": [
    {
      "function": {
        "name": "get_invoice",
        "parameters": {
          "properties": {
            "id": {
              "type": "string"
            }
          },
          "required": [
            "id"
          ],
          "type": "object"
        }
      },
      "type": "function"
    }
  ]
}
After (GPT-6 Luna)
{
  "messages": [
    {
      "content": "Summarize this ticket.",
      "role": "user"
    }
  ],
  "model": "gpt-6-luna",
  "reasoning_effort": "none",
  "tools": [
    {
      "function": {
        "name": "get_invoice",
        "parameters": {
          "properties": {
            "id": {
              "type": "string"
            }
          },
          "required": [
            "id"
          ],
          "type": "object"
        }
      },
      "type": "function"
    }
  ]
}

Official source

GPT-6 Sol and GPT-6 Luna support function calling in Chat Completions only with reasoning_effort: "none".

https://developers.openai.com/api/docs/guides/latest-model (last checked 2026-11-02)

For GPT-5.6, function tools in Chat Completions are compatible only with effective reasoning none.

https://developers.openai.com/api/docs/guides/upgrading-to-gpt-5p6-sol (last checked 2026-11-02)

All migration errors

FAQ

How do I fix this when moving to gpt-6-luna, gpt-6-sol, gpt-5.6-*?

Set reasoning_effort: "none", or move to the Responses API to use tools with reasoning. GPT-5.6 defaults to medium, so leaving the field out isn’t enough.

Where is this documented?

In OpenAI’s official docs: https://developers.openai.com/api/docs/guides/latest-model, last checked 2026-11-02.