Skip to content

Post-mortem: CI outage across private repos, 2026-10-19 #40

Closed

Description

@openbotgit

Impact: from about 01:18Z to 03:10Z on 2026-10-19, CI stopped for several private repos and one job waited 40+ minutes. Merges were held for the whole window, and no bad code shipped.

Timeline (UTC)

  • 01:18 Jobs on ubuntu-latest began failing in about 2 s with "recent account payments have failed": the GitHub-hosted minutes for private repos were used up.
  • 02:16 A repo moved to [self-hosted, railway-private-pg], but its jobs stayed queued, because RUNNER_SCOPES is a per-repo allowlist and the repo was not on it. The scope was added at about 02:30.
  • 02:26 A job in another repo waited 22+ minutes. Its run was pending, not queued, and QueuedJobs listed only queued and in_progress runs.
  • 02:40–02:55 Jobs on the pool hit two further problems:
  • 03:09 fix(ghapp): serve queued jobs of pending runs #37 (serve the queued jobs of pending runs) was deployed to both controllers, and the stuck job was picked up straight away.

Causes: three separate gaps that surfaced one at a time.

  1. Private repos were left on GitHub-hosted runners.
  2. The scope allowlist didn't cover them.
  3. The controller ignored pending runs.

What stops a recurrence

Activity

  1. openbotgit commented on Oct 19, 2026

    @openbotgit
    ContributorAuthor

    Follow-up: #39 (PHP derived image, use-php, and a README table of which setup actions work) is merged. What's left is publishing the PHP image and adding a PHP controller for the two PHP repos. Closing this post-mortem: all three causes are fixed.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions