← Back
ENGINEERING NOTE3 min read

GitHub Pages Deployment Concurrency After the Bun Migration

A practical record of how an older Pages deployment was cancelled after a newer main revision arrived, and how to interpret that state correctly.

Bun
GitHub Actions
CI/CD
GitHub Pages
Deployment

An older deployment was cancelled after a newer main revision arrived

While finishing the Bun migration and CI cleanup, multiple changes landed on main in a short window.

GitHub Actions showed the earlier Pages deployment as cancelled, followed by a new deployment for the newer commit.

The actual deployment flow

StepRevision / RunStatusMeaning
1Commit A · 97ca593New revisionExisting main change
2Deploy #364RunningDeployment starts for Commit A
3Commit B · 76e1a3eNew revisionA newer change arrives on main
4Deploy #364CancelledOlder deployment is superseded by the newer revision
5Deploy #365StartedDeployment starts for Commit B
6Build✅ SuccessLatest revision builds successfully
7Pages Deploy✅ SuccessLatest revision reaches production

Key point: Deploy #364 cancelled does not mean the final deployment failed. The important check is whether the latest revision, 76e1a3e, was successfully built and deployed by Deploy #365.

A cancelled run is not automatically a deployment failure

The important state is not the previous run in isolation. Treat the previous run and the latest revision as one deployment lifecycle.

CheckWhat to verify
Previous runWas it cancelled rather than failed?
Latest revisionWas a new deployment run created?
Latest buildDid the latest revision build successfully?
Latest deploymentDid the Pages deployment complete successfully?

In this case, the older run #364 was cancelled, but a new #365 run was created for the latest revision 76e1a3e. The build completed successfully and Pages deployment followed.

Why keep this in the migration record?

CI/CD incidents are easier to interpret when we look at the revision-to-deployment lifecycle, not just a single run status.

Previous stateLatest state
97ca59376e1a3e
Deploy #364Deploy #365
Cancelled / SupersededBuild ✅ → Deploy ✅

For repositories where main can receive consecutive changes, a cancelled run should be investigated together with the newer run before being classified as an incident.

This became another useful part of the Bun migration case study: the work was not only about changing runtimes, but also about understanding the real CI/CD execution boundaries and deployment lifecycle.

Related OSS