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.
- Retry only the failed episodes from a Sume bulk queue
A Sume bulk queue shows completed even when items failed. Find the failed children and re-queue only those, with fresh keys and untouched keys for the rest.
- Season 2 of a Shorts series: same Sume Format, new input, new keys
Start season 2 without rebuilding anything. Keep the Format, change the input and idempotency keys, and keep season 1 receipts as a style reference.
Written by Sume