Why a Sume output schema is rejected: the strict subset rules

Sume saves an output schema only in the strict subset: object root, additionalProperties false, all properties required, nullable unions, 10 levels.

4 min readSume
All posts

You paste a JSON Schema into a schedule's Output schema section and Sume refuses it. The reason is that custom schemas must obey a strict subset, the same rules the docs say OpenAI Structured Outputs enforces. When you save, Sume rejects an outside schema and lists the rules it breaks. This post is the checklist.

The rules

  • The root is an object.
  • Each object sets "additionalProperties": false.
  • Each property appears in required. An optional property uses a nullable union such as "type": ["string", "null"].
  • At most 10 nesting levels, 5000 properties and 1000 enum values.
  • $ref may point only at #/$defs/<name> or the registered SumeMediaFile#.

Name and strict flag

Schema names accept A-Z a-z 0-9 . _ / - up to 64 characters. When Sume calls the structuring model it rewrites characters outside A-Z a-z 0-9 _ -, because the provider accepts only the narrower set; Sume stores and reports the name you typed, so sume/action-image-v1 stays that on the receipt. Sume accepts strict: false and returns it, but it does not relax the subset.

A schema that fails, and the fix

The first schema below fails twice: additionalProperties is missing and note is not in required. The second fixes both.

{"type":"object","properties":{"title":{"type":"string"},"note":{"type":"string"}},"required":["title"]}

{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string"},"note":{"type":["string","null"]}},"required":["title","note"]}

Same contract on Agent Completions

The Agent Completions page says output_schema there is bound with the same contract as Action runs. Check a schema at design time, as in Create a schedule, before you wire it into a CI job.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume