Skip to content

[SDK Sentinel] Avoid encoded payload test workflow timeout - #1909

Merged
tconley1428 merged 1 commit into
temporalio:mainfrom
sdk-sentinel-forks:automation/sdk-sentinel/ci-flake/python/36794672368-1-8ebde7161e38
Oct 1, 2026
Merged

tconley1428 merged 1 commit into
temporalio:mainfrom
sdk-sentinel-forks:automation/sdk-sentinel/ci-flake/python/36794672368-1-8ebde7161e38

Conversation

@sdk-sentinel-bot

Copy link
Copy Markdown
Contributor

Caution

This PR contains untrusted AI-generated code. Do not approve or run CI until a maintainer has reviewed the diff. SDK Sentinel verified that GitHub Actions remained approval-gated with zero executable jobs when this PR was opened.

Summary

Avoid a flaky timeout in the encoded activity-failure decoding test observed in [macOS Python 3.10 CI](https://github.com/temporalio/sdk-python/actions/runs/36762053347/job/110046813746). The bounded snapshot has no preceding equivalent success; this is the [first captured main failure](https://github.com/temporalio/sdk-python/actions/runs/36762053347).

Root cause

The test limited its entire workflow run to five seconds even though it verifies failure payload decoding. During a resource-saturated suite run, worker progress exceeded that deadline and the server closed the workflow before the decoding assertions completed.

Fix

Remove the unrelated workflow run deadline. The activity retains its three-second schedule-to-close timeout, and pytest still bounds the test at 60 seconds.

Validation

The unchanged focused test passed once, so the CI failure did not reproduce locally. After the change, the focused test passed once plus ten stress iterations. The unchanged baseline and candidate repository validator both passed. The macOS ARM Python 3.10 CI job remains required.

Validation status: ci-validation-required

  • Flake confidence: high
  • Fix confidence: high
  • Value: medium
  • Patch scope: standard — 1 changed file; 610 B
  • Local reproduction: not-reproduced — The exact unchanged test passed once on Linux Python 3.14; macOS ARM Python 3.10 was unavailable.
  • Regression coverage: pass-after-only — No new test was needed; the existing focused test passed once normally and ten times under flake-finder after the one-line change.
  • Unchanged baseline (Poe lint, bridge lint, and editable build) — passed
  • Independent candidate (Poe lint, bridge lint, and editable build) — passed

Investigator-run checks

  • poe test -s tests/worker/test_workflow.py::test_activity_failure_with_encoded_payload_is_decoded_in_workflow (before candidate) — passed; 1 attempt(s). The unchanged test passed; the CI failure did not reproduce locally.
  • poe test -s -k test_activity_failure_with_encoded_payload_is_decoded_in_workflow — passed; 1 attempt(s). The focused test passed after the candidate.
  • poe test -s --flake-finder --flake-runs=10 tests/worker/test_workflow.py -k test_activity_failure_with_encoded_payload_is_decoded_in_workflow — passed; 10 attempt(s). All ten post-candidate stress iterations passed.
  • poe test -s --flake-finder --flake-runs=10 tests/contrib/openai_agents/test_openai_replay.py -k 'agents and tools' — passed; 20 attempt(s). Twenty focused cases for the separate replay cluster passed without reproducing its deadlock.
  • .ci-flake-runtime/input/validate.sh (trusted unchanged baseline) — passed; 1 attempt(s). The trusted baseline validation succeeded.
  • .ci-flake-runtime/input/validate.sh — passed; 1 attempt(s). The candidate passed formatting, lint, type checks, Rust bridge clippy, and editable bridge build.

Required target CI

  • Continuous Integration / build-lint-test (3.10, macos-arm) in the normal workflow environment

Residual risks

  • The exact failing macOS ARM Python 3.10 environment was not exercised locally.
  • A true workflow hang now relies on the existing 60-second pytest timeout, while activity execution remains bounded by its three-second schedule-to-close timeout.
  • The distinct OpenAI Agents replay deadlock cluster remains unresolved.

Automation provenance

If this finding should not be fixed, apply the sdk-sentinel:false-positive label and close the PR. Sentinel will suppress the finding until its affected source changes.

SDK Sentinel recurrence history

  • Unique failed CI run attempts: 1
  • First occurrence: 2026-09-30 19:12 UTC
  • Latest occurrence: 2026-09-30 19:12 UTC
  • Recent occurrences:

@sdk-sentinel-bot
sdk-sentinel-bot requested a review from a team as a code owner October 1, 2026 00:49
@tconley1428 tconley1428 added the skip-changelog PR changes do not require changelog updates label Oct 1, 2026
@tconley1428
tconley1428 merged commit cf11a1d into temporalio:main Oct 1, 2026
18 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog PR changes do not require changelog updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants