Synthetic Industry

Collection · updated 2026-10-11

A slow, stuck or killed pipeline: diagnose in this order, then choose the fix

An ordered process map for pipeline problems, from a job that never starts to one that is slow, each step linked to a guide and its bounded fix.

1. Did the job start?

Look for a start time. If the job never starts, it is a queue, a rule or a runner problem, not a code problem. On GitLab, work out whether the pipeline or the job was never created, or whether no runner takes it. On any platform, check whether you are waiting for capacity rather than for a slow step. If a job did start, go on.

  • GitLab: the missing-pipeline and pending-job guide, then the £175 fixed job.
  • Waiting for capacity: the duration guide that separates waiting from running.

2. Did it end by itself?

A job that is cancelled at its time limit with a quiet log is waiting for something, not failing. Find the last output and the process that was still alive. If it did end, go on.

  • Hanging job: the waiting-process guide, then the fixed job at £245.

3. Was it killed rather than failed?

A log that ends with Killed, a 137 status or no space left on device points to a limit, not to your code. Measure memory and disk on a branch before changing the runner. If the log instead names a failing command with a readable message, go to step 4.

  • Killed job: the memory-and-disk guide, then the fixed job at £225.

4. Did it fail with an error, or with no value?

On GitHub Actions a normal error is the existing £149 single-job repair; on GitLab CI a job that starts and then fails is not covered by a fixed-price outcome, so ask for a quote. An empty credential that fails later with an authentication message is a secret scope problem: check whether this run was allowed to see the secret. The same code that passes and fails is a flaky test: measure the failure rate and work out how many clean runs you need (about three divided by the failure rate, and never fewer than fifty in the paid job).

  • Secret scope: the secret-visibility guide, then the existing £149 job where the secret exists.
  • Random failure: the repeat-run arithmetic guide, then the stabilisation job for up to five named tests, priced per test from £395 for one test.

5. Does it pass but take too long?

Split waiting from running. For running time, check the dependency cache first, then whether every package builds for every change. Each has a bounded fix, a monthly budget can watch them afterwards, and a project can deliver several together.

  • Cache: the cache-miss guide and the £195 job.
  • Monorepo: the affected-packages guide and the job from £795.
  • Several at once: the project from £3,500, or the monthly budget at £245 a month.

Sources and limits