Read the diagnostic
CLI JSON, TypeScriptFiredrillError.toJSON(), and Python FiredrillError.to_dict() expose the same diagnostic concepts:
Keep diagnostics and private journals protected. Do not log raw recipes, application outputs, credentials, or configuration merely to explain a failure.
Catch typed errors
- TypeScript
- Python
FiredrillError is exported by @firedrill-run/sdk:client, recipe, and actual application target.
Choose the matching recovery action
CLI examples, using actual returned handles:
follow only observes. A submission key is not an execution operation ID. Reuse the original account, project/environment, recipe intent, and private journal. Do not switch identity or create a new key to bypass an uncertain action.
Authentication and scope
An explicitFIREDRILL_TOKEN takes precedence over protected interactive login. If it fails, clients do not borrow another identity. SCOPE_CONFLICT means your selected project/environment disagrees across sources; select one consistent pair.
FD_SDK_IDENTITY_CHANGED means the protected login changed while a client was active. Verify the intended identity and create a new client deliberately; recover previous work with its original identity.
Firedrill selects its service address automatically. FD_API_ENDPOINT_LOCKED rejects custom endpoint settings before network access. Do not edit a saved recovery journal’s origin.
Assessment is separate
A completed execution may have no requested assessment, a partial assessment, or an evaluator error. Missing evidence is not zero and an evaluator outage is not a failed agent. A required gate can beinconclusive; a simulation without a gate is not_configured. See the CLI exit-code reference when integrating with CI.