Background job queue backlog: symptoms, cause, and the test that catches it

A job change slows processing and the queue grows faster than it drains.

Background job queue backlog is documented by 3 accepted public reports from 3 organisations, 3 of them published in the last 5 years.

  • Likelihood: medium (3 public reports in 5 years)
  • Impact: low (2 of 3 reports: degraded)

3 public reports · verified 2026-10-21

Symptoms

User-visible

  • Scheduled builds started late, up to about forty minutes.[1]
  • Jobs waited longer than usual before dispatch to an agent, in some cases more than ten minutes.[1]
  • Requests routed to application containers in one United States region saw higher latency and error rates.[2]
  • Newly published package versions did not show in the web frontend and could not be installed.[3]
  • Emails were delayed and new accounts could not verify their email addresses.[3]

Monitoring-visible

  • Worker processes stayed healthy and no deploy failed while recurring scheduling had stopped.[1]
  • The work queue of the infrastructure management application built up.[2]
  • New router instances showed the wrong boot state and failed readiness checks.[2]
  • The central task queue held more than 46K pending tasks, the oldest more than 14 hours old, against under 100 normally.[3]
  • Database CPU usage rose in step with the task backlog.[3]

Root causes

  1. stage: code A routine framework update moved a connection pool library from 2.5.5 to 3.0.2 with a keyword-only API, and three scheduler threads per worker of the job library failed on startup.[1]
  2. stage: code A dependency upgrade in the infrastructure management application caused a timing lock issue that greatly reduced task worker throughput.[2]
  3. stage: infra The task workers failed to scale up for the increased workload scheduling, so the work queue built up.[2]
  4. stage: code A periodic task deployed on 2022-06-23 ran a slow row-counting query every 5 minutes, and its long-running instances used up the workers available for other tasks.[3]

Public examples

  1. [1]Buildkite, 2026-08-10. A routine Rails update pulled a new major version of connection_pool that Sidekiq could not use; internal Sidekiq scheduler threads stopped on startup, so recurring background work stopped and queued jobs waited longer for dispatch until the library was pinned back. primary Latency on Pipelines
  2. [2]Heroku, 2022-09-23. A change to the application that manages Common Runtime infrastructure included a dependency upgrade that greatly reduced task worker throughput; the work queue built up, new router instances were not initialised correctly and were deleted, and requests to dynos failed until the change was rolled back. primary Degraded availability
  3. [3]PyPI, 2022-06-28. A deployed periodic task for 2FA statistics ran a slow row-counting query every 5 minutes; over several days these tasks occupied more of the workers until the central task queue held nearly 50K pending tasks and CDN purges and emails were delayed by more than 14 hours. primary Queue delay affecting CDN purges and emails

Test classes that catch it

Test classStageLimitationBasis
Integration testspre-deployAn integration test that only starts a worker passes in report [1], because worker processes stayed healthy while the scheduler threads for recurring work had stopped.by design analysis
Load and performance testspre-deployA load test that runs for minutes misses the slow periodic query in report [3], whose instances accumulated over several days before the queue held more than 46K tasks.by design analysis
Canary and progressive delivery checkspost-deployCanary checks watch request traffic and miss stopped recurring jobs, and in report [1] no deploy failed while scheduled work had halted.by design analysis

Risk

  • Likelihood: medium (3 public reports in 5 years)
  • Impact: low (2 of 3 reports: degraded)
Counts behind the grades
Accepted public reports3
Published in the last 5 years3
Impact stated: degraded2
Impact stated: availability1

How the grades are computed

Pre-release checklist

  • PR-01
  • PR-02
  • PR-03
  • PR-04
  • PR-05
  • PR-06
  • PR-07
  • PR-08

First 30 minutes

  • FM-01
  • FM-02
  • FM-03
  • FM-04
  • FM-05
  • FM-06
  • FM-07
  • FM-08

Download the checklist

What catches this: catalogue entries

Listed because their own documentation or site names integration tests, load and performance tests, canary and progressive delivery checks on the verification date. Alphabetical. Not a recommendation.

Tools whose documentation names these test classes

Providers whose site names these test classes

Only on this page

In report [1], background job queue backlog took 15 minutes to detect. The library change merged at 04:33 UTC and rollout began at 04:40. Monitoring alerted at 04:48, eight minutes after rollout. The change was identified at 04:59, and the library was pinned back to 2.5.5.

Report [3] and report [2] show slower paths to notice. In report [3], the periodic task was deployed on 2022-06-23, users reported delays for about 12 hours, and admins confirmed the backlog at 15:43 UTC on 2022-06-27. In report [2], incorrectly configured alerts delayed notice that new router instances were not initialised, and engineering was notified when routing availability dropped at about 21:54 UTC.

Questions

What causes background job queue backlog?

All three accepted reports name a code-stage cause: a library upgrade that stopped scheduler threads [1], a dependency upgrade that cut worker throughput [2] and a slow periodic query [3]. Report [2] adds an infra cause, a failure to scale up workers.

What are the symptoms of background job queue backlog?

Users see scheduled builds up to about forty minutes late [1], failing requests [2] or delayed emails [3]. Monitoring shows a growing queue, with more than 46K pending tasks against under 100 normally in report [3].

Why did tests not catch background job queue backlog?

In report [1], worker processes stayed healthy and no deploy failed while recurring scheduling had stopped. In report [3], the slow task's instances accumulated over several days, longer than a short load test runs.

Which public reports document background job queue backlog?

Three primary reports are accepted, published between June 2022 and August 2026. They cover a stopped job scheduler [1], an infrastructure work queue [2] and a central task queue [3].

How long did it take to detect background job queue backlog in the public reports?

Report [1] measures 15 minutes from merge at 04:33 UTC to the monitoring alert at 04:48 UTC. In report [3], admins confirmed the backlog after about 12 hours of user reports.

Should a team roll back or fix forward when background job queue backlog happens?

Report [2] rolled back the change and scaled routers by hand. Report [1] pinned the library back, and report [3] disabled the task and cancelled long-running queries.

Release Incident Playbook (2026). Background job queue backlog: symptoms, cause, and the test that catches it, content version 1.0.0. https://releasefailures.com/incidents/background-job-queue-backlog/. Accessed 2026-10-21.