Skip to content

Activity timeout failure cannot be restored during workflow replay #498

Description

@rmcdaniel

Defect

The published 2.0.8 engine records terminal activity timeouts with Workflow\V2\Exceptions\ActivityTimeoutException, but that class does not exist. Replaying the resumed workflow fails with UnresolvedWorkflowFailureException instead of delivering the timeout to workflow code. Catch/finally recovery and cleanup do not run, and the workflow remains waiting with a failed workflow task.

Reproduction

  1. Start a workflow with an activity and a schedule-to-close timeout.
  2. Let an activity fail once and schedule a retry.
  3. Advance beyond the schedule-to-close deadline before processing the retry, then run the normal repair pass.
  4. Process the resumed workflow task. Failure restoration rejects the missing exception class.

The same missing class name is emitted by the activity timeout enforcer, local-activity executor, and workflow-task bridge.

Acceptance

  • Restore activity timeout failures as a concrete catchable runtime exception, including existing persisted failures without an exception-type field.
  • Prove workflow catch/finally handling and terminal behavior after reloading persisted history.
  • Cover local-activity timeout restoration as well as ordinary activity timeouts.
  • Preserve timeout classification and existing serialized class identity; no application-specific exception mapping workaround.
  • Publish a patch and verify the consuming application regression.

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