Skip to content

Make unsupported activity task codecs non-retryable in the PHP worker #36

Description

@rmcdaniel

Problem

In 2.0.0-rc.37, the PHP worker correctly rejects a missing or non-Avro root payload_codec before payload decode or user-handler execution. For activity tasks, however, Worker::rejectPolledTask() calls failActivityTask() with non_retryable set to false. The Server can therefore apply the activity retry policy to a protocol-incompatible task and redeliver it, causing repeated poison-task attempts instead of one terminal, actionable codec failure.

Acceptance criteria

  • Report unsupported activity-task codecs with failure.non_retryable=true while retaining the stable unsupported_payload_codec diagnostic.
  • Preserve the existing pre-decode rejection behavior for missing, empty, JSON, unknown, wrong-case, null, and other non-string root codec values.
  • Add focused transport assertions that the activity failure request is non-retryable, performs no payload decode or user-handler work, and does not affect normal application activity-failure retryability.
  • Verify against the supported standalone Server that an incompatible activity task reaches a terminal unsupported-codec failure without scheduling another activity attempt.

Delete when

Delete this issue when the published PHP SDK reports unsupported activity-task codecs as non-retryable and the supported Server evidence proves the incompatible task is not redelivered.

Metadata

Metadata

Assignees

No one assigned

    Labels

    authority:githubGitHub is the authoritative lifecycle record for this workbeta:compatibleMay be completed without changing the frozen beta contractkind:defectA public product behavior is incorrectpriority:P2Normal-priority product workrepo:sdk-phpOwned by the PHP SDK repositorystatus:readyReady for implementation

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions