Skip to content

[SDK Sentinel] Fix flaky schedule interceptor visibility check - #3184

Open
sdk-sentinel-bot wants to merge 1 commit into
temporalio:mainfrom
sdk-sentinel-forks:automation/sdk-sentinel/ci-flake/java/41255220684-1-0e3819f88502
Open

sdk-sentinel-bot wants to merge 1 commit into
temporalio:mainfrom
sdk-sentinel-forks:automation/sdk-sentinel/ci-flake/java/41255220684-1-0e3819f88502

Conversation

@sdk-sentinel-bot

@sdk-sentinel-bot sdk-sentinel-bot commented Nov 1, 2026 •

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

Stabilize ScheduleTest.testInterceptors after a [same-SHA cloud attempt passed](https://github.com/temporalio/sdk-java/actions/runs/41173921213/job/124457428717) and its [rerun returned zero schedules](https://github.com/temporalio/sdk-java/actions/runs/41173921213/job/124464560263). Breaking changes: none. Server PR: none.

Root cause

Schedule creation can complete before the eventually consistent Cloud list index exposes the schedule. The test assumed a fixed two-second delay was sufficient.

Fix

Poll visibility for up to 30 seconds through a client without tracing interceptors, then make the single intercepted list call whose behavior the test verifies.

Validation

The focused test passed four times against the loopback Temporal service; natural pre-change reproduction did not occur. The trusted unchanged baseline and validator-equivalent formatting/compilation checks passed. Exact candidate validation was blocked by read-only submodule Git metadata. The Cloud Java 23 job and canonical validator remain required.

Validation status: validation-incomplete

  • Flake confidence: high
  • Fix confidence: high
  • Value: medium
  • Patch scope: standard — 1 changed file; 1.5 KiB
  • Local reproduction: not-reproduced — One pre-change focused run passed against the loopback Temporal service; the slower Cloud visibility path was unavailable locally.
  • Regression coverage: pass-after-only — The existing test was converted into the regression check and passed four post-change loopback runs; no deterministic pre-change local failure occurred.
  • Unchanged baseline (Gradle formatting and test-source compilation) — passed
  • Independent candidate (Gradle formatting and test-source compilation) — did not pass (failure)

Investigator-run checks

  • USE_EXTERNAL_SERVICE=true TEMPORAL_SERVICE_ADDRESS=127.0.0.1:7233 ./gradlew --offline --no-daemon :temporal-sdk:cleanTest :temporal-sdk:test --tests 'io.temporal.client.schedules.ScheduleTest.testInterceptors' -x :temporal-serviceclient:initSubmodules -x :temporal-serviceclient:updateSubmodules — passed; 4 attempt(s). Four post-change runs passed against the preloaded loopback Temporal service.
  • .ci-flake-runtime/input/validate.sh (trusted unchanged baseline) — passed; 1 attempt(s). The trusted workflow recorded BUILD SUCCESSFUL for the unchanged checkout.
  • GRADLE_USER_HOME=$PWD/.ci-flake-runtime/tmp/gradle-agent .ci-flake-runtime/input/validate.sh — failed; 1 attempt(s). Formatting passed, then validation was blocked when Gradle attempted to update read-only submodule Git metadata.
  • ./gradlew --offline --no-daemon spotlessCheck testClasses -x test -x :temporal-serviceclient:initSubmodules -x :temporal-serviceclient:updateSubmodules — passed; 1 attempt(s). The validator-equivalent formatting and compilation checks passed when only the inaccessible submodule metadata tasks were excluded.

Required target CI

  • Continuous Integration / Unit test with cloud on Linux with Temurin Java 23
  • Canonical candidate validation via .ci-flake-runtime/input/validate.sh in a checkout with writable submodule Git metadata

Residual risks

  • Local Temporal visibility timing may not represent Temporal Cloud; the focused Cloud job must confirm the 30-second bound.
  • The exact fixed repository validator did not complete in this read-only Git sandbox.
  • The separate autoscaling sticky-worker shutdown flake 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: 3
  • First occurrence: 2026-10-31 05:57 UTC
  • Latest occurrence: 2026-11-03 21:38 UTC
  • Recent occurrences:

@sdk-sentinel-bot
sdk-sentinel-bot requested a review from a team as a code owner November 1, 2026 01:17

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant