PersistentVolumeClaim stuck in Pending (no persistent volumes available / waiting for first consumer)
The PVC hasn’t been bound to a volume, so pods using it can’t be scheduled.
Seen on:
Kubernetes
Meaning
Binding needs either a matching pre-created PV or a StorageClass that provisions one. Pending happens when no default StorageClass exists (common on bare-metal/kind/minikube setups), the class name is wrong, the provisioner isn’t running, or the class uses WaitForFirstConsumer and no pod has been scheduled yet.
Common causes
- No default StorageClass / wrong storageClassName
- CSI provisioner not installed or failing
- No PV matches size/accessMode/selector
- volumeBindingMode: WaitForFirstConsumer (normal until a pod uses it)
- Cloud quota/zone constraints
⚡ Quick fix
- kubectl describe pvc for the reason
- Set storageClassName to an existing class (kubectl get sc)
- Install/fix the provisioner, or create a matching PV
Detailed fix by platform
Kubernetes
- bash
kubectl get sc kubectl describe pvc data -n app | sed -n '/Events/,$p'
How to diagnose
- Class — Exists and is default?
- Provisioner — Pods running?
- Mode — WaitForFirstConsumer?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- 126 incorrect key file MySQL ERROR 126 (HY000): Incorrect key file for table; try to repair it
- AuthenticationFailed Azure Storage: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature (AuthenticationFailed)
- AuthorizationPermissionMismatch Azure Storage: AuthorizationPermissionMismatch (403) — This request is not authorized to perform this operation using this permission
Most viewed in Kubernetes
- error converting YAML to JSON error converting YAML to JSON: yaml: line 12: did not find expected key
- is waiting to start Error from server (BadRequest): container "x" in pod "y" is waiting to start: ContainerCreating
- kubectl connection refused kubectl: The connection to the server localhost:8080 was refused — did you specify the right host or port?
Other ways to find it
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 7 Oct 2026