René's URL Explorer Experiment


Title: fix: skip orphaned check suites when checking GitHub CI by trivenay · Pull Request #1163 · nodejs/node-core-utils · GitHub

Open Graph Title: fix: skip orphaned check suites when checking GitHub CI by trivenay · Pull Request #1163 · nodejs/node-core-utils

X Title: fix: skip orphaned check suites when checking GitHub CI by trivenay · Pull Request #1163 · nodejs/node-core-utils

Description: Problem checkGitHubCI() blocks landing with ✘ GitHub CI is still running whenever any GitHub Actions check suite has a status other than COMPLETED. GitHub occasionally creates check suites that remain stuck in QUEUED with zero check runs — they are never dispatched and will never complete. These orphaned suites block the commit queue indefinitely, forcing collaborators to land PRs manually with git node land. This was discussed in #1160 and observed on at least two recent nodejs/node PRs (#64991, #64830), both stuck on an orphaned Test macOS suite and landed manually. Fix Skip a non-completed suite only when both: it has zero check runs (checkRuns.nodes.length === 0), and it was created more than 3 hours ago. A legitimately queued suite gets its check runs attached within seconds, so it will not match. Suites with active runs still block as before, and a freshly created empty suite (within the window) is not skipped. This is strictly narrower than the current manual workaround (git node land --yes), which bypasses all checks including real failures. Adds createdAt to the checkSuites GraphQL query to compute suite age. Trade-off If someone adds commit-queue before request-ci has finished triggering all workflows, a suite that should have run but hasn't started yet could — after aging past the 3h threshold — be skipped, landing the PR without that workflow's results. The 3h window makes this unlikely in practice, and the timeout can be made configurable in a follow-up if desired. Test Added a unit test with an orphaned suite (0 runs, old createdAt) alongside a completed suite; the checker now passes instead of blocking. test/unit/pr_checker.test.js: 74/74 pass. Refs: #1160 Validated against the affected PRs Ran the skip condition against the live check-suite data of both PRs that were stuck on this: PR Orphaned suite runs age result with this fix #64991 queued 0 ~199h skipped → unblocked #64830 queued 0 ~358h skipped → unblocked In both cases the single orphaned suite is exactly what blocked the commit queue, and this change lets the check pass instead of hanging indefinitely.

Open Graph Description: Problem checkGitHubCI() blocks landing with ✘ GitHub CI is still running whenever any GitHub Actions check suite has a status other than COMPLETED. GitHub occasionally creates check suites that rem...

X Description: Problem checkGitHubCI() blocks landing with ✘ GitHub CI is still running whenever any GitHub Actions check suite has a status other than COMPLETED. GitHub occasionally creates check suites that rem...

Opengraph URL: https://github.com/nodejs/node-core-utils/pull/1163

X: @github

direct link

Domain: github.com

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:f91c84b4-d86d-0424-b86f-08cb61492dcb
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idC50C:32386D:114C97C:1693204:6AED62E1
html-safe-nonce6db92101198e4793a3a651b10d4814c413ccab26bea4e9b583fdc23f7aad1cb6
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNTBDOjMyMzg2RDoxMTRDOTdDOjE2OTMyMDQ6NkFFRDYyRTEiLCJ2aXNpdG9yX2lkIjoiMjk4NzM4MzU0NDExNjc2NTQwOSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmaca4392d9b648d335a4f659e6a412d751e60c39b46af18483447bfbe727182d021
hovercard-subject-tagpull_request:4274528411
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/nodejs/node-core-utils/pull/1163/files
twitter:imagehttps://avatars.githubusercontent.com/u/122821716?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/122821716?s=400&v=4
og:image:altProblem checkGitHubCI() blocks landing with ✘ GitHub CI is still running whenever any GitHub Actions check suite has a status other than COMPLETED. GitHub occasionally creates check suites that rem...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None56fb42677ae87ed3e64410323d67980aa65d0485568a7858f874e7edfc6d1c11
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/nodejs/node-core-utils git https://github.com/nodejs/node-core-utils.git
octolytics-dimension-user_id9950313
octolytics-dimension-user_loginnodejs
octolytics-dimension-repository_id107863796
octolytics-dimension-repository_nwonodejs/node-core-utils
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id107863796
octolytics-dimension-repository_network_root_nwonodejs/node-core-utils
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release9c9a37e2423ed382cf39f70b5aa4b4858b40a3b0
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/nodejs/node-core-utils/pull/1163/files#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode-core-utils%2Fpull%2F1163%2Ffiles
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fnodejs%2Fnode-core-utils%2Fpull%2F1163%2Ffiles
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=nodejs%2Fnode-core-utils
Reloadhttps://github.com/nodejs/node-core-utils/pull/1163/files
Reloadhttps://github.com/nodejs/node-core-utils/pull/1163/files
Reloadhttps://github.com/nodejs/node-core-utils/pull/1163/files
nodejshttps://github.com/nodejs
node-core-utilshttps://github.com/nodejs/node-core-utils
Codehttps://github.com/nodejs/node-core-utils
Issues63 (63)https://github.com/nodejs/node-core-utils/issues
Pull requests28 (28)https://github.com/nodejs/node-core-utils/pulls
Actionshttps://github.com/nodejs/node-core-utils/actions
Projectshttps://github.com/nodejs/node-core-utils/projects
Security and qualityhttps://github.com/nodejs/node-core-utils/security
Insightshttps://github.com/nodejs/node-core-utils/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fnodejs%2Fnode-core-utils%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fnodejs%2Fnode-core-utils%2Fissues%2Fnew%2Fchoose
trivenayhttps://github.com/trivenay
nodejs:mainhttps://github.com/nodejs/node-core-utils/tree/main
trivenay:fix-orphaned-check-suite-blockinghttps://github.com/trivenay/node-core-utils/tree/fix-orphaned-check-suite-blocking
Conversation 1 https://github.com/nodejs/node-core-utils/pull/1163
Commits 1 https://github.com/nodejs/node-core-utils/pull/1163/commits
Checks 0 https://github.com/nodejs/node-core-utils/pull/1163/checks
Files changed https://github.com/nodejs/node-core-utils/pull/1163/files
Please reload this pagehttps://github.com/nodejs/node-core-utils/pull/1163/files
fix: skip orphaned check suites when checking GitHub CI https://github.com/nodejs/node-core-utils/pull/1163/files#top
Show all changes 1 commit https://github.com/nodejs/node-core-utils/pull/1163/files
f8aeedb fix: skip orphaned check suites when checking GitHub CI trivenay Aug 13, 2026 https://github.com/nodejs/node-core-utils/pull/1163/commits/f8aeedbdf2f5725b89d76d3b6c49eb52894b3092
Clear filters https://github.com/nodejs/node-core-utils/pull/1163/files
Please reload this pagehttps://github.com/nodejs/node-core-utils/pull/1163/files
Please reload this pagehttps://github.com/nodejs/node-core-utils/pull/1163/files
pr_checker.js https://github.com/nodejs/node-core-utils/pull/1163/files#diff-b7c8c41f626090c2d59adfe45e29522856b0ce1cb02b4f2bb8163ef0253947b0
PR.gql https://github.com/nodejs/node-core-utils/pull/1163/files#diff-57fc92e6d866fd02ccbd8a7c95fffdc07f384d5033264760ce9996e08951322b
check-suite-orphaned.json https://github.com/nodejs/node-core-utils/pull/1163/files#diff-e92860103815eb1150d9b99e64114fdd363ff57e2f4ca008c391da20f26e86cd
pr_checker.test.js https://github.com/nodejs/node-core-utils/pull/1163/files#diff-f8f7fd767132a1fed73603cde26b1272191aef0278ec6c6fb4c1b50be399c10a
lib/pr_checker.jshttps://github.com/nodejs/node-core-utils/pull/1163/files#diff-b7c8c41f626090c2d59adfe45e29522856b0ce1cb02b4f2bb8163ef0253947b0
View file https://github.com/nodejs/node-core-utils/blob/f8aeedbdf2f5725b89d76d3b6c49eb52894b3092/lib/pr_checker.js
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node-core-utils/pull/1163/{{ revealButtonHref }}
https://github.com/nodejs/node-core-utils/pull/1163/files#diff-b7c8c41f626090c2d59adfe45e29522856b0ce1cb02b4f2bb8163ef0253947b0
https://github.com/nodejs/node-core-utils/pull/1163/files#diff-b7c8c41f626090c2d59adfe45e29522856b0ce1cb02b4f2bb8163ef0253947b0
https://github.com/nodejs/node-core-utils/pull/1163/files#diff-b7c8c41f626090c2d59adfe45e29522856b0ce1cb02b4f2bb8163ef0253947b0
https://github.com/nodejs/node-core-utils/pull/1163/files#diff-b7c8c41f626090c2d59adfe45e29522856b0ce1cb02b4f2bb8163ef0253947b0
lib/queries/PR.gqlhttps://github.com/nodejs/node-core-utils/pull/1163/files#diff-57fc92e6d866fd02ccbd8a7c95fffdc07f384d5033264760ce9996e08951322b
View file https://github.com/nodejs/node-core-utils/blob/f8aeedbdf2f5725b89d76d3b6c49eb52894b3092/lib/queries/PR.gql
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node-core-utils/pull/1163/{{ revealButtonHref }}
https://github.com/nodejs/node-core-utils/pull/1163/files#diff-57fc92e6d866fd02ccbd8a7c95fffdc07f384d5033264760ce9996e08951322b
https://github.com/nodejs/node-core-utils/pull/1163/files#diff-57fc92e6d866fd02ccbd8a7c95fffdc07f384d5033264760ce9996e08951322b
test/fixtures/github-ci/check-suite-orphaned.jsonhttps://github.com/nodejs/node-core-utils/pull/1163/files#diff-e92860103815eb1150d9b99e64114fdd363ff57e2f4ca008c391da20f26e86cd
View file https://github.com/nodejs/node-core-utils/blob/f8aeedbdf2f5725b89d76d3b6c49eb52894b3092/test/fixtures/github-ci/check-suite-orphaned.json
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node-core-utils/pull/1163/{{ revealButtonHref }}
test/unit/pr_checker.test.jshttps://github.com/nodejs/node-core-utils/pull/1163/files#diff-f8f7fd767132a1fed73603cde26b1272191aef0278ec6c6fb4c1b50be399c10a
View file https://github.com/nodejs/node-core-utils/blob/f8aeedbdf2f5725b89d76d3b6c49eb52894b3092/test/unit/pr_checker.test.js
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/nodejs/node-core-utils/pull/1163/{{ revealButtonHref }}
https://github.com/nodejs/node-core-utils/pull/1163/files#diff-f8f7fd767132a1fed73603cde26b1272191aef0278ec6c6fb4c1b50be399c10a
https://github.com/nodejs/node-core-utils/pull/1163/files#diff-f8f7fd767132a1fed73603cde26b1272191aef0278ec6c6fb4c1b50be399c10a
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.