Synthetic Industry

Platform · updated 2026-10-11

GitLab CI: find out whether the job was never created or never taken by a runner

For teams on GitLab whose merge request shows no pipeline, a pending job, a slow install or a job that runs until its timeout: what GitLab decides at each stage and what to check.

Three decisions GitLab makes before a job runs

First, whether a pipeline is created for the event, which workflow rules and job rules decide. Second, whether the job is in that pipeline, which its own rules decide. Third, whether a runner takes it, which tags, protection and availability decide. A job that fails at the first or second stage never reaches a log, so teams tend to look at the third. Work through the three in order.

  • Pipeline created?
  • Job included?
  • Runner available and permitted?

Runners, tags and timeouts

A runner takes a job only if it carries every tag the job lists. A protected runner takes jobs on protected branches or tags, and can optionally also run jobs in merge request pipelines. The job timeout is the shorter of the project's timeout and the runner's maximum, so a runner configured with a small maximum can end jobs earlier than the project setting suggests. Pending jobs are dropped after an hour if no runner matches and after 24 hours if a matching runner never takes them, with a recorded reason.

Caching

GitLab states plainly that caching is an optimisation and not a guarantee. By default the cache sits on the runner that produced it, so a later job finds it only on the same runner unless distributed caching is set up. A cache key can be derived from the contents of chosen files, such as a lockfile, so that the cache changes when dependencies do.

Priced routes

A GitLab job that is never created or never taken by a runner is covered by a fixed job at £175, untested, accepted when the named job starts on a test merge request on a runner you agreed and one pipeline is created for the event; runner settings are applied by your administrator and we never hold runner tokens. A cache that never hits is covered at £195, and a job that runs until its timeout is £245, both untested and paid after you sign off. Each covers one job or one pipeline. Send the line that lists the job's tags and a plain-words description of when it should run, not the pipeline file, code or tokens. A GitLab job that starts and then fails is not covered by a fixed-price outcome; ask for a quote.

Sources and limits

  • GitLab job rules Checked 2026-10-11.
    • Rules are evaluated in order until the first match; with no match the job is not added to the pipeline.
  • GitLab merge request pipelines Checked 2026-10-11.
    • The main pipeline file must hold rules matching a merge request event; rules only in included files do not count.
  • GitLab runner configuration Checked 2026-10-11.
    • A runner needs every tag a job lists; protected runners take jobs on protected branches or tags and can optionally also run merge request pipeline jobs; the job timeout is the shorter of the project and runner maximum, with a runner minimum of 600 seconds.
  • GitLab caching guide Checked 2026-10-11.
    • Caching is not guaranteed; a runner-local cache is found only by jobs on the same runner.