Skip to main content
A Slurm job stays in 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
To see the full reason and the job’s exact request, use scontrol:
For background on the job lifecycle, see Monitor Slurm job states.

Decision tree

Find your REASON 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.

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:
A cluster administrator sets group GRES and CPU limits. If a limit is consistently too low for your workload, raise it with your administrator rather than retrying.

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

If sinfo 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.
  1. Partition mismatch. The idle nodes are in a different partition than the one your job targets. Confirm with sinfo which partition holds idle nodes, then submit to that partition with --partition.
  2. Feature or constraint mismatch. The idle nodes lack a feature your --constraint requires. List features per partition with sinfo -o "%P %t %f" and reconcile against your constraint.
  3. Topology constraints. With topology-aware scheduling, a job that requests --exclusive=topo or a --segment waits 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.
  4. 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.
  5. Reserved or blocked nodes. Nodes in RESERVED or BLOCKED state appear in sinfo but aren’t schedulable for your job. See Monitor Slurm node states.
  6. Backfill can’t plan around an unlimited time limit. A running job with no TimeLimit has no predictable end time, so backfill never evaluates lower-priority jobs behind it. Your job may show Reason=Priority with StartTime=Unknown and Scheduler=Main even when nodes are idle. Set an accurate --time on 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 an sbatch 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 --constraint feature that exists, paired with a partition whose nodes lack it. List features with sinfo -o "%P %f" and align the request.
  • A --constraint expression with a typo or an impossible combination (for example, two mutually exclusive features joined with &).
  • --segment plus --exclude math. 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 PENDING job isn’t a failed job. Jobs that fail show F, NF, or another terminal state, not PD.
  • Priority and Resources aren’t errors. They mean the queue is working normally. Don’t resubmit repeatedly. Resubmitting adds load to slurmctld without 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 Resources for an extended period while sinfo shows ample idle nodes in the correct partition with matching features, and none of the idle nodes but still pending causes apply.
  • ReqNodeNotAvail persists 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.
Include the output of scontrol show job [JOB-ID], sinfo, and sinfo -R in the ticket. Confirm whether the issue is yours to resolve or CoreWeave’s. Workload Scheduling
Last modified on September 16, 2026