PENDING (PD) when the scheduler has accepted the job but can’t start it yet. Run squeue -u $USER and read the REASON column to learn whether to wait, change your submission, or escalate. Common cases: Resources and Priority mean the queue is working and you should wait, AssocGrp* and QOS* mean an accounting limit blocks the job, and configuration reasons such as BadConstraints or PartitionConfig mean you must change the request.
A pending job isn’t an error on its own. For why a job waits and what the REASON column means, see Monitor Slurm job states. This article maps each REASON value to a concrete action.
What you see
squeue shows your job in state PD with a value in the REASON (or NODELIST(REASON)) column. Read it with squeue -u $USER:
Example output
scontrol:
Decision tree
Find yourREASON value in the sections that follow. Reasons fall into five groups: resource, quota and account, configuration, dependency and held, and the “Requested node configuration is not available” message that has several distinct causes.
- If the reason is
Resources,Priority,BeginTime,Reservation, orReqNodeNotAvail, see Resource and timing reasons. - If the reason starts with
Assoc,QOS, or isInvalidAccount, see Quota and account reasons. - If the reason is
BadConstraints,PartitionConfig,PartitionTimeLimit, orPartitionNodeLimit, see Configuration reasons. - If the reason is
Dependency,JobHeldUser, orJobHeldAdmin, see Dependency and held reasons. - If nodes look idle but the job still waits, or you see
Requested node configuration is not available, see Idle nodes but still pending.
Resource and timing reasons
These reasons mean the scheduler accepted your request and the job waits its turn. Usually, the correct action is to wait.
To confirm the cluster has idle capacity:
Quota and account reasons
These reasons mean a Slurm accounting limit on your association (the combination of user, account, partition, and QoS) blocks the job. The job waits until usage drops below the limit, or until an administrator raises the limit. If you’re at a hard cap and nothing else is running, waiting alone doesn’t help.
To inspect your own limits and current usage:
Configuration reasons
These reasons mean the job’s request conflicts with the partition or constraint configuration. Waiting doesn’t help. You must change the submission or the partition.
To compare your request against partition limits:
Dependency and held reasons
These reasons mean the job is intentionally not eligible to run yet.Idle nodes but still pending
Ifsinfo shows idle nodes but your job still waits with Resources, Priority, or ReqNodeNotAvail, the idle nodes usually can’t satisfy this specific request. Work through these causes in order.
- Partition mismatch. The idle nodes are in a different partition than the one your job targets. Confirm with
sinfowhich partition holds idle nodes, then submit to that partition with--partition. - Feature or constraint mismatch. The idle nodes lack a feature your
--constraintrequires. List features per partition withsinfo -o "%P %t %f"and reconcile against your constraint. - Topology constraints. With topology-aware scheduling, a job that requests
--exclusive=topoor a--segmentwaits until a whole block (or segment) is free. Idle nodes spread across several blocks don’t satisfy a single-block request. After drains, a block may temporarily hold fewer than its full node count, so a block-sized request waits. - Gang or all-or-nothing requirement. A multi-node job needs all requested nodes at once. A few idle nodes scattered across the cluster can’t start an N-node job until N matching nodes are free together.
- Reserved or blocked nodes. Nodes in
RESERVEDorBLOCKEDstate appear insinfobut aren’t schedulable for your job. See Monitor Slurm node states. - Backfill can’t plan around an unlimited time limit. A running job with no
TimeLimithas no predictable end time, so backfill never evaluates lower-priority jobs behind it. Your job may showReason=PrioritywithStartTime=UnknownandScheduler=Maineven when nodes are idle. Set an accurate--timeon every job, or see Job priority, QoS, and preemption.
”Requested node configuration is not available”
This message (it can appear as a job reason or as ansbatch or srun rejection) means no node matches the exact combination of resources, features, and constraints the job requested. The following are common causes:
- A partition and feature combination that no node satisfies. For example, a
--constraintfeature that exists, paired with a partition whose nodes lack it. List features withsinfo -o "%P %f"and align the request. - A
--constraintexpression with a typo or an impossible combination (for example, two mutually exclusive features joined with&). --segmentplus--excludemath. When you request a segment size but exclude enough nodes that no remaining block can supply a full segment, the request becomes unsatisfiable. Reduce the segment size, reduce exclusions, or wait for more nodes to free up. See topology-aware scheduling.- A request that exceeds per-node hardware, for example, more GPUs or memory per node than any node in the partition provides. Compare the request against
sinfo -o "%P %c %m %G".
What this is not
Keep these distinctions in mind:- A
PENDINGjob isn’t a failed job. Jobs that fail showF,NF, or another terminal state, notPD. PriorityandResourcesaren’t errors. They mean the queue is working normally. Don’t resubmit repeatedly. Resubmitting adds load toslurmctldwithout helping.- A quota reason (
AssocGrp*,QOS*) isn’t a hardware shortage. Free nodes can exist while your association is capped.
When to file a support ticket
Open a support ticket in any of these situations:- A job pends on
Resourcesfor an extended period whilesinfoshows ample idle nodes in the correct partition with matching features, and none of the idle nodes but still pending causes apply. ReqNodeNotAvailpersists because nodes stay drained or down and don’t recover. See Drain and undrain Slurm nodes first.- You believe an accounting limit is set incorrectly and your administrator can’t adjust it.
scontrol show job [JOB-ID], sinfo, and sinfo -R in the ticket. Confirm whether the issue is yours to resolve or CoreWeave’s.
Related pages
- Monitor Slurm job states: job state codes and the
REASONcolumn. - Drain and undrain Slurm nodes: why nodes that would run your job are unavailable.
- Topology and block scheduling in Slurm: block, segment, and
--exclusive=topobehavior. - SUNK troubleshooting: all SUNK triage flows.