Skip to content

Fix issue oncall schedule expiry - #58871

Open
cortinico wants to merge 1 commit into
mainfrom
agentcloud/fix-issue-oncall-schedule-expiry
Open

cortinico wants to merge 1 commit into
mainfrom
agentcloud/fix-issue-oncall-schedule-expiry

Conversation

@cortinico

@cortinico cortinico commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary:

The scheduled Monitor React Native New Issues workflow fails in Extract next oncall because extractIssueOncalls.js requires an exact dated entry and the ONCALL_SCHEDULE secret has no entry for the active Tuesday.

Live evidence:

The exact-date lookup was introduced in 890b8f7ea3378685f7d6d9612ff584fc9ed17df0. The outage itself was triggered by the schedule crossing its final configured date, not by a new January commit, so a code bisection cannot isolate a later introducing commit.

This change treats each dated rotation as effective until the next dated entry, which keeps issue monitoring alive when schedule maintenance is late. It writes a warning to stderr whenever it carries a rotation forward, so the stale configuration remains visible. Dates before the first configured entry still fail clearly.

Risk / limitation: until the secret is refreshed, the last configured pair remains on call. That is preferable to the current complete notification outage, but schedule owners should still update the secret.

Changelog:

[INTERNAL] [FIXED] - Keep issue monitoring running when the on-call schedule reaches its final dated entry.

Test Plan:

  • npx --yes jest@29.7.0 --runInBand --config '{"testEnvironment":"node","rootDir":"/tmp/react-native-ci-monitor/repo","transform":{}}' .github/workflow-scripts/__tests__/extractIssueOncalls-test.js — 9/9 tests passed, including the new expired-schedule regression case.
  • npx --yes prettier@3.9.4 --check .github/workflow-scripts/extractIssueOncalls.js .github/workflow-scripts/__tests__/extractIssueOncalls-test.js — passed.
  • node --check on both changed files — passed.
  • git diff --check — passed.
  • Monitor React Native New Issues workflow-dispatch run on this branch — passed end to end: https://github.com/react/react-native/actions/runs/37396984698. The real secret took the carry-forward path, emitted the expected warning, and completed Monitor New Issues successfully.

A full workspace install was not run locally because the sparse diagnostic checkout cannot resolve unpublished 0.87.0-main workspace packages from npm; GitHub PR CI will exercise the repository-wide checks.

2026-10-18 CI monitor update

Revalidated against current main SHA 27e77216ef2557ccbf31a01067a44dc1dd2ec846.

  • Complete exact-SHA inventory: 421 terminal checks (278 success, 137 skipped, 6 failure); no queued, running, cancelled, or timed-out checks.
  • All six failures are scheduled Monitor React Native New Issues runs. Their logs have the same deterministic TypeError: Cannot read properties of undefined (reading '0') at extractIssueOncalls.js:23, including the latest run: https://github.com/react/react-native/actions/runs/39126927293
  • No other open PR matches this root cause.
  • The patch applies cleanly to the current default-branch head.
  • Fresh validation: focused Jest suite 9/9 passed; Prettier, node --check on both changed files, and git diff --check passed.
  • Direct reproduction with an exhausted schedule fails on current main and succeeds with this patch by carrying forward the final configured rotation while emitting a warning.

The introducing code remains commit 890b8f7ea3378685f7d6d9612ff584fc9ed17df0; the outage starts only when the finite secret-backed schedule crosses its last configured date, so there is no later code commit to bisect.

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Oct 6, 2026
@facebook-github-tools facebook-github-tools Bot added p: Facebook Partner: Facebook Partner labels Oct 6, 2026
@cortinico
cortinico requested a review from cipolleschi October 6, 2026 01:00

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

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant