Skip to content

Conversation

@ksharlandjiev
Copy link
Contributor

Problem

When SsmRunCommandOperator runs in deferrable mode and a command exits with a non-zero code, the trigger was raising an exception instead of yielding a TriggerEvent.

This caused:

  • Trigger failures without sending events to the operator
  • Inability to capture exit codes for workflow routing
  • Task retry failures with the same error
  • Inconsistent behavior between deferrable and synchronous modes

This fix changes the trigger to yield failure events instead of raising exceptions for command-level failures (non-zero exit codes), while still raising exceptions for AWS-level failures (Cancelled, TimedOut, Cancelling).

Changes

  • Modified SsmRunCommandTrigger.run() to yield failure events with detailed information (exit code, status, instance ID, message)
  • Enhanced SsmRunCommandOperator.execute_complete() to handle failure events and raise RuntimeError with all details
  • Fixed status_queries from ["status"] to ["Status"] to properly display command status in logs

The fix enables proper exit code capture in deferrable mode, allowing for workflow routing based on command exit codes while maintaining the fail_on_nonzero_exit parameter behavior.

@boring-cyborg boring-cyborg bot added area:providers provider:amazon AWS/Amazon - related issues labels Jan 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:providers provider:amazon AWS/Amazon - related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants