Sume agent_reported_failure: the three reasons and what to do

agent_reported_failure on a Sume run means the run's own receipt said it did not deliver. Its details.reason tells you which of three cases it was.

4 min readSume
All posts

agent_reported_failure means the run's accepted receipt says it did not deliver. details.reason is one of explicit_failed, slots_failed or primary_not_deliverable, and output still carries the ledger while status is failed.

The definitions below come from the output_error.code table on Sume's Structured output page. The page treats the code set as open, so branch on the codes you handle and fall through on the rest.

What do the three reasons mean?

The page describes the case as an explicit-fail payload, failed or stand-in media slots, or a primary of the wrong media type for the Format's io.output_kind.

agent_reported_failure reasons from the Sume Structured output docs page, read 2026-10-02.
`details.reason`CaseExtra details
explicit_failedThe receipt carries an explicit-fail payloadharvested count by media type
slots_failedOne or more slots are failed or stand-innon_delivered_slots[], harvested
primary_not_deliverableThe primary is the wrong media type for io.output_kindprimary_media_type, harvested

How is it different from the other failure codes?

output_schema_unsatisfied is about the shape or the URLs. unattended_blocked is the run stopping rather than claim a deliverable it did not make. deliverable_missing means the Format produces media the run never made. agent_reported_failure is the run itself saying so, and the page notes output still carries the ledger, with the run failed "because the receipt says so".

What do I read first?

Read details.reason, then non_delivered_slots[] when it is slots_failed; that list names the slots to retry. artifacts[] is populated either way, so media the run did make is still yours to show or reuse.

On a run over the API, a projection failure is a run failure: the page says status is failed and error carries the same code as output_error. Check output_error before reading output.

How do I retry?

Send the failed run's id as previous_run_id on a new run, so the next turn starts from the clips already made, as the docs describe in Continue a run.

Sources

Related posts

More in Formats

All Formats posts

Written by Sume