Troubleshooting
This page is for operators who need to diagnose problems with the Cluster Readiness Engine (CRE). Each section follows a problem-solution format: symptoms, diagnostic commands, and fixes.
Job not progressing
Symptoms: Job stays in InProgress for longer than expected. No Succeeded or Failed condition appears.
Diagnosis:
Solutions:
- The workload resource exists but is not completing — check Kubeflow Trainer logs and pod events.
- Pods are
Pending— verify GPU resources are available on target nodes (kubectl describe node <node>). - Kubeflow Trainer is not running — confirm its pods are healthy (
kubectl get pods -n kubeflow-system).
Workflow stuck without a Job
Symptoms: Workflow condition is InProgress, but no child Job appears.
Diagnosis:
Solutions:
- Dependency creation failed — check controller logs for RBAC errors when creating ConfigMaps, PVCs, or other dependency resources.
- Target nodes do not match — verify the Workflow’s
nodeSelectorornodeNamesmatches existing nodes (kubectl get nodes -l <selector>). - The Workflow spec is invalid — look for validation errors in the controller logs.
Hardware failures not detected
Symptoms: A node has a known hardware problem, but the Job does not report the HardwareFailed condition.
Diagnosis:
Solutions:
- The CEL expression has a syntax error — look for parse errors in controller logs. Test your expression against a node object.
- Pods are not scheduled on target nodes — the controller only evaluates nodes where Job pods are running. Verify pod placement.
- The pod label is missing — the controller injects
cre.nvidia.com/jobautomatically. If pods were created before the controller started, they may lack the label. - Node conditions or taints do not exist yet — CRE only reads node state; it relies on your cluster’s health monitoring stack to set the conditions or taints your CEL expression checks. Verify with
kubectl describe node.
High reconciliation latency
Symptoms: Status updates are slow. The cre_reconcile_duration_seconds P95 is above 5 seconds.
Diagnosis:
Solutions:
- Controller is resource-constrained — increase CPU and memory limits. See the Deployment page for sizing guidance.
- Too many nodes per health check — large clusters increase CEL evaluation time. Consider splitting workloads across fewer nodes.
- API server is under load — check API server metrics and reduce concurrent reconciles if needed.
Certification not progressing
Symptoms: Certification stays InProgress after Workflows have finished.
Diagnosis:
Solutions:
- A category is not registered in the catalog — the controller sets the Certification to
Failedwith reasonCategoryNotFound. Verify your domain and variant values againstnvcrectl certification list-categories. - A child Workflow is still running — the Certification waits for all Workflows to complete before transitioning.
Stall detection not triggering
Symptoms: A Job appears stuck but is not marked Failed with reason WorkloadStalled.
Diagnosis:
Solutions:
stallMultiplieris not set — stall detection is opt-in. AddstallMultiplierto the Job spec (e.g.,10means stalled if no step for 10x average step time).- No GoodputMeasurement exists — stall detection requires a GoodputMeasurement to provide
avgStepTimeSecandlastStepTimestamp. ConfiguregoodputMeasurementon the Job. - Not enough training steps — the controller needs at least two non-warmup steps to compute
avgStepTimeSec. Wait for the workload to produce more log output.
BandwidthMeasurement not reporting results
Symptoms: A BandwidthMeasurement exists but status.results is empty.
Diagnosis:
Solutions:
- The LogProfile is missing the
bandwidthResultpattern — BandwidthMeasurement requires a LogProfile with abandwidthResultregex. Add it to the LogProfile spec. - The regex does not match the NCCL output format — verify the regex against actual log output. NCCL test output format varies between versions.
- The workload has not produced output yet — bandwidth results appear only after the NCCL test completes its message-size sweep.
- The
replicatedJobNameis wrong — for MPI workloads, setworkerStrategy.replicatedJobName: launcherin the LogProfile since NCCL output goes to the launcher pod.
Enable debug logging
For deeper investigation, enable debug-level logging by adding the flag to the manager container args:
This surfaces detailed reconciliation traces and CEL evaluation results.
Next steps
- Monitoring — Set up alerts so you catch issues before they need manual diagnosis.
- Deployment — Review resource sizing and RBAC.
- Health Monitoring & Failed Node Attribution — Understand how CEL-based hardware detection works.
- Certify a Cluster — End-to-end certification walkthrough.