Skip to content

Map current duplicate-start conflicts to WorkflowAlreadyStarted #164

Closed

Description

@rmcdaniel

Confirmed published-client defect

During #163 qualification, normally installed Python SDK 2.6.0 against immutable PHP Server 2.9.5 (sha256:f5771101fc55a3e1e8f8bd572beb1d57f593c05db5e5760f0773f75a96fe7ebb) raises generic ServerError for a duplicate start. The actual response is HTTP 409 / outcome=rejected_duplicate / reason=instance_already_started. errors.py maps only the historical duplicate_not_allowed reason to WorkflowAlreadyStarted.

Three independent originals (initial policy omitted, fail, use-existing) all reproduce this at the first active duplicate. The later policy/completion assertions were not reached. Three separate invalid-policy fresh-ID controls already pass with 422 and no admitted workflow. No replacement, termination or PHP defect is inferred.

Acceptance:

  • Map the current duplicate-start reason to the existing typed exception, retaining the historical reason.
  • Preserve unrelated conflicts and exact workflow identity.
  • Add focused current/legacy mapping coverage and qualify active/closed duplicate behavior with published PHP Server using the unchanged lifecycle and wire policies.
  • Deliver a compatible patch and verify normal installation. Do not bundle unrelated unreleased behavior into the patch.

General owns this alongside #163. This is an exception-classification correction, not a workflow reuse or termination feature. Native parity remains unqualified.

Activity

  1. added
    bugSomething isn't working
    priority:P2Normal-priority product work
    status:in-progressApproved work is actively being implemented or validated
    on Oct 19, 2026
  2. rmcdaniel commented on Oct 19, 2026

    @rmcdaniel
    MemberAuthor

    Delivered in Python 2.6.1. The current and historical duplicate-start reasons now raise WorkflowAlreadyStarted. All candidate and fresh-main gates, normal PyPI installation and six real Server policy cases pass. See the complete delivery and preserved original failures.

  3. added
    status:doneDerived from the authoritative closed issue state
    and removed
    status:in-progressApproved work is actively being implemented or validated
    on Oct 19, 2026
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

    bugSomething isn't workingpriority:P2Normal-priority product workstatus: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