Skip to content

Result retrieval misses terminal events beyond the first history page #81

Description

@rmcdaniel

Customer outcome

WorkflowHandle.result() returns the real terminal result or failure for a completed workflow even when its run history spans several Server API pages.

Reproduction

During Server #237 long-history qualification, published Server 2.4.19 and published Python SDK 2.3.4 completed a workflow with 100 recorded side effects. Server reported completed and output 4950, but handle.result() returned None. The history endpoint's default first page had StartAccepted, WorkflowStarted, and 98 SideEffectRecorded events. Its WorkflowCompleted event was on the next page. Client.get_result() scans only the first page.

Acceptance

  • Follow the Server's opaque history page token with bounded page size to find the terminal event without accumulating the full history in memory.
  • Preserve terminal result decoding and typed failure behavior, including external payload references.
  • Expose explicit history pagination to callers and document its page semantics.
  • Test a terminal event on a later page and a malformed repeated token.
  • Verify the fix against the published Server image with a candidate SDK, then release and verify the published Python package before closing.

Related qualification: durable-workflow/server#237.

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

    completion:evidence-requiredClose only after all explicit acceptance and operational evidence is publicpriority:P1High-priority product or release riskstatus:doneDerived from the authoritative closed issue state

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions