Runway failureCode is diagnostic: what to show users from Sume

Runway says not to show SAFETY failure codes to users. On Sume, show your own text keyed on code; keep message, request_id and details in logs.

4 min readSume
All posts

Runway says the third part of a SAFETY.* failure code, such as SAFETY.INPUT.TEXT, may not match the real input and should be treated as diagnostic only, not shown to users. With Sume, do the same: map the stable code (or next_action) to your own user-facing sentence, and keep message, details and request_id for logs and support.

Runway text from its Dev docs; Sume text from Errors and spend and Errors and rate limits. Read 2026-10-01.

Why not show a diagnostic code?

Runway's example is a SAFETY.INPUT.TEXT failure on a task that sent no prompt text. A user shown that label would be told something false. The same risk applies to any provider-internal label.

Which Sume error fields are for whom?

The docs describe each field's job. Sort them into user-facing, dashboard, and log-only.

Audience for each Sume error field, based on the docs read 2026-10-01.
FieldDocs sayWhere to use it
codeStable token to switch onMap to your own wording
messageWritten for a human, may change; log it, never match on itLogs
category, stage, public_reasonCoarser labels for dashboards and alertsDashboards
next_actionA fixed set such as fix_input or retry_laterDrive the UI button
request_idQuote it to support; also the x-sume-request-id headerSupport link or log

What stays private?

Internal provider payloads are not public API fields, so there is nothing of that kind to relay. When you write to support, include the request id, and leave out API keys, signed URLs, raw media URLs and private workspace or user ids. See what not to log.

What should the user see?

Something short and true for the next_action: "fix the input", "add funds", "try again later". Do not echo the raw message. Branch on HTTP status first and then on code, as the docs advise, and keep the reasoning for rejected content in your own copy, not in a provider's label.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume