# ERP Safety States | State | Meaning | Next action | |---|---|---| | dry_run | task shape and route validated without ERP write | request explicit authorization if real execution is required | | blocked | a config, whitelist, duplicate, lock, session, or business rule stopped the action | resolve the named gate; do not retry blindly | | execution_uncertain | save state lacks definitive ERP evidence | query registry/ERP and reconcile before retry | | completed | identifier and saved fields verified after post-save re-query | continue to requested artifact delivery | | post_save_recovery_required | save verified, export/delivery failed | run export-only recovery with neverResave=true | allowRealSubmit belongs to local config. The task contract must not contain credentials, whitelist data, or a command that bypasses the dispatcher.