Jenkins: "Waiting for next available executor" and the other reasons a build stays in the queue
A build you start goes into Jenkins' build queue first, and leaves it when an executor that is allowed to run it is free. While it waits, Jenkins keeps one line saying why. The line is more precise than it looks: the build may be waiting for any executor, for one particular node, for a node with a label, for an agent to come online, for its own previous build, or for Jenkins to stop shutting down.
Where Jenkins shows the reason
On the dashboard, the Build Queue box lists the waiting jobs; hover a job's name to see "Started by user …", the reason, and how long it has waited ("Waiting for 43 sec"). The REST API gives the same line as why, one entry per queued build. A Jenkins 2.580.1 on our machine, on October 28, 2026:
curl -s -g -u 'your-user-id:your-api-token' \
'https://jenkins.example.com/queue/api/json?tree=items[id,why,stuck,blocked,task[name]]'
{"items":[
{"id":5,"blocked":true,"stuck":false,"task":{"name":"slow"},"why":"Build #1 is already in progress (ETA: N/A)"},
{"id":3,"blocked":false,"stuck":true,"task":{"name":"on-windows"},"why":"‘agent1’ is offline"},
{"id":2,"blocked":false,"stuck":true,"task":{"name":"on-linux"},"why":"There are no nodes with the label ‘linux’"},
{"id":1,"blocked":false,"stuck":false,"task":{"name":"hello"},"why":"Waiting for next available executor on ‘Built-In Node’"}]}
The -g matters: without it curl reads the square brackets as its own patterns and stops with "URL malformed" (exit code 3) before asking Jenkins anything. A build you started through the API has its own address, the Location header of the 201 answer (/queue/item/1/); /queue/item/1/api/json has the same why while it waits.
What each reason means
- "Waiting for next available executor": no executor is free for it, and Jenkins names no node. On our Jenkins every queued build said this while there was no agent at all and the built-in node had 0 executors, including a job restricted to the label
linuxthat no node had: with no agents, Jenkins does not talk about labels. Look at Manage Jenkins | Nodes: how many executors each node has (0 on the built-in node is the recommended setup, so every build needs an agent), and whether the agents are online and idle. The same from the API (ours later on, after we had given the built-in node one executor; both agents never connected):
curl -s -g -u 'your-user-id:your-api-token' \
'https://jenkins.example.com/computer/api/json?tree=computer[displayName,offline,numExecutors,idle]'
{"computer":[
{"displayName":"Built-In Node","idle":false,"numExecutors":1,"offline":false},
{"displayName":"agent1","idle":true,"numExecutors":1,"offline":true},
{"displayName":"agent2","idle":true,"numExecutors":1,"offline":true}]}
- "Waiting for next available executor on ‘Built-In Node’" (or on ‘an agent's name’, or on ‘a label’): the build may run only there, and every executor there is busy, or there are none. Ours was a job tied to the built-in node, after we had added one agent: the built-in node still had 0 executors. A label shared by several nodes is named the same way.
- "There are no nodes with the label ‘linux’": the job is restricted to a label (Restrict where this project can be run, or
agent { label 'linux' }in a Pipeline) and no node has it. A typo, a label renamed on the agent, or a cloud that has not been set up. It does not go away on its own: Jenkins marks the build"stuck":true, and restarting Jenkins does not clear it (our two stuck builds were back in the queue after a restart). - "‘agent1’ is offline": the only node with the label exists but is not connected. Ours was an agent that had never connected. Start it, or look at its page under Nodes for why it disconnected. Also
"stuck":true. - "All nodes of label ‘windows’ are offline": the same, with two or more nodes behind the label and none of them connected (ours:
agent1andagent2, both never started). - "Build #1 is already in progress (ETA: N/A)": the job runs one build at a time (a freestyle job without Execute concurrent builds if necessary, a Pipeline with
disableConcurrentBuilds()), and its previous build has not finished. ETA is N/A when Jenkins has no earlier build to estimate from. The REST API marks it"blocked":true. It starts by itself when #1 ends. - "Jenkins is about to shut down": someone chose Prepare for Shutdown (quiet mode). Every queued build then says this, whatever else it was waiting for, and the dashboard shows "Jenkins is going to shut down. No further builds will be performed. (cancel)".
/api/jsonhas"quietingDown":true. Cancel it from that banner, or wait for the restart. - "Finished waiting": seen for a moment right after a build's quiet period (5 seconds by default) ended, before Jenkins looked for an executor. Not a problem.
Jenkins writes the reason in the language the request asks for (Accept-Language), otherwise in the server's own: our Jenkins, on a Japanese system, answered a curl without that header in Japanese. Not every line is translated: "There are no nodes with the label" came back in English even when Japanese was asked for.
Jenkins builds in IntelliJ IDEA and other JetBrains IDEs
Pipeline Inbox for Jenkins, a plugin by Lesstep for JetBrains IDEs 2024.1 or later, follows a build you start from the IDE through the queue for up to a minute and then selects it in the list. From version 1.0.12, if Jenkins has not started it by then, the note says Jenkins' reason, for example "nightly: the build is waiting in Jenkins' queue. Jenkins says: There are no nodes with the label ‘linux’", asked for in the IDE's language. The build list, Pipeline stages, failed tests and console logs are free; starting a build (with or without parameters), rebuild, stop and input steps are Pro (US$1.50 a month, with a 30-day trial).
Jenkins® is a registered trademark of LF Charities Inc.; IntelliJ IDEA is a trademark of JetBrains s.r.o. This page is not affiliated with or endorsed by the Jenkins project or JetBrains.
More: "Nothing is submitted" · an input step that holds an executor while it waits · "401 Unauthorized" · Jenkins plugins for IntelliJ IDEA compared · 日本語