Output schema required_completeness: list every property in required
Sume's strict output_schema wants every declared property in required, and no required entry without a property. Make a field optional with a null union.

The rule required_completeness fires in two cases. A declared property is not in required, or a required entry names a property that does not exist. Fix both by making required match properties exactly. To make a value optional, keep it in required and allow null: "type": ["string", "null"] (Structured output).
Rejected and accepted
// rejected: required_completeness (caption not required, price has no property)
{
"type": "object",
"additionalProperties": false,
"required": ["title", "price"],
"properties": {
"title": { "type": "string" },
"caption": { "type": "string" }
}
}
// accepted
{
"type": "object",
"additionalProperties": false,
"required": ["title", "caption"],
"properties": {
"title": { "type": "string" },
"caption": { "type": ["string", "null"] }
}
}Why optional means null
Sume does not allow a key to be absent. A field the run could not fill comes back as null, so the object always has the same keys and your parser needs no branches for missing keys. Read null as "the run had nothing to put here", and require only what the Format truly always makes.
Related violations in the same response
The same 400 lists every problem, so a schema that also lacks additionalProperties: false shows additional_properties_false next to required_completeness. Fix them all in one edit.
Sources
Related posts
More in Formats
- Output schema type float or date rejected: unsupported_type
Sume's output_schema accepts seven types only. A float, date or any type gets the rule unsupported_type. Map each to number, string with format, or an enum.
- Poll a Sume bulk queue every 10 seconds: read limits by plan
How often can you poll a Sume bulk queue? Reads are 40 times the write limit, so a 10-second poll fits every plan. The math, and when to back off.
- primary_output_key on a headline string: primary_output_url is null
If primary_output_key names a text field in your Sume output_schema, the receipt echoes the key but primary_output_url is null. Point it at the media field.
- Refresh last year's holiday Format: one commit, rerun with v2 keys
Update a Sume Format for this holiday season with one Contents API commit, then re-queue with v2 Idempotency-Keys. Runs read the package they started with.
Written by Sume