API Chat Completions issue: json_schema in wrong order, GPT-5.5

When:

Model: gpt-5.5
Endpoint: Chat Completions
response_format/text.format: json_schema

Symptom:

GPT-5.5, Chat Completions: AI model is producing its output JSON in the wrong order, disobeying the schema, and only on Chat Completions, not Responses. This ruins the chain-of-thought necessary for quality decision-making.

GPT-5.5, Responses: AI model is not given a logit enforcement of when it is in a string or out, and produces unescaped double-quotes, and breaks out of the JSON. Even the playground parser knows it is bad JSON, because it doesn’t highlight.

AI diagnoses itself:

Chat Completions - wrong

Responses - correct (but damaged output with unescaped quotes)

{
"contains_person": false,
"is_known_person": false,
"name": "none",
"unencumbered": true,
"justification": "["contains_person", "is_known_person", "name", "unencumbered", "justification", "release_to_user"]",
"release_to_user": true
}

Chat Completions, GPT-5.4 - Correct

{
  "contains_person": false,
  "is_known_person": false,
  "name": "none",
  "unencumbered": true,
  "justification": "['contains_person', 'is_known_person', 'name', 'unencumbered', 'justification', 'release_to_user']",
  "release_to_user": true
}

Responses, GPT-5.4 - AI is again able to produce bad JSON in its answer.

Moderation-like json_schema being used
{
  "name": "likeness_result",
  "strict": true,
  "schema": {
    "type": "object",
    "properties": {
      "contains_person": {
        "type": "boolean",
        "description": "True if the image contains a person. The first field, in fields that must be created in this schema's ordering."
      },
      "is_known_person": {
        "type": "boolean",
        "description": "True if the person is recognized as a known individual."
      },
      "name": {
        "type": "string",
        "description": "The full name of the recognized person. If no person or unidentified unknown person, must be from [none, unknown].",
        "minLength": 0
      },
      "unencumbered": {
        "type": "boolean",
        "description": "True if this person's likeness is free from legal claim for new representations and true if there is no problem. Always true if no person is present."
      },
      "justification": {
        "type": "string",
        "description": "Explanation of the reasoning, evidence, and findings used to determine whether a person is present, whether they are identifiable or known, and whether the likeness is unencumbered."
      },
      "release_to_user": {
        "type": "boolean",
        "description": "True if OpenAI should provide the output image to a user of AI image services. False if the image should be withheld due to policy, legal, safety, likeness, or rights concerns."
      }
    },
    "required": [
      "contains_person",
      "is_known_person",
      "name",
      "unencumbered",
      "justification",
      "release_to_user"
    ],
    "additionalProperties": false
  }
}

Additionally, developer functions are denied on Chat Completions with GPT-5.5 and GPT-5.4. If intentional, this is abhorrent.

2 Likes