Skip to content

Raise a typed terminal timeout instead of returning None from workflow result #54

Description

@rmcdaniel

Confirmed against main fe4b059 with AsyncMock describe/history responses, no runtime or credentials: status=failed plus a persisted WorkflowTimedOut event causes Client.get_result to return None. A real deadline is therefore indistinguishable from successful None output. Found during the timeout parity review for sdk-php#55; Rust already maps this terminal outcome explicitly.

Acceptance:

  • Raise an exported WorkflowTimedOut SDK exception for WorkflowTimedOut history (execution_timeout and run_timeout).
  • Keep the caller's polling TimeoutError distinct and unchanged.
  • Preserve the selected run used to retrieve history and existing success/failure/cancellation/termination behavior.
  • Add focused red/green tests and run Ruff, mypy and the unit suite.

This is a result-mapping correction, not a replay or wire-protocol change. Do not introduce transport compatibility for old prereleases.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions