CUDA uncorrectable ECC error on an NVIDIA GPU
An uncorrectable GPU memory error means ECC could not repair the affected data. On modern NVIDIA data-center GPUs, the next action depends on whether the error was contained, the recovery-action flag, row-remapping state, and field diagnostics. A single message does not automatically prove the board needs RMA.
Stop using the affected allocation, preserve Xid and nvidia-smi -q evidence, determine whether the error was contained, and follow the reported recovery action. Drain or quarantine the GPU until the required reset and validation complete. Use NVIDIA field diagnostics and row-remapping failure state for an RMA decision.
What this failure is
An uncorrectable ECC error is a memory error that the GPU's ECC mechanism cannot correct. NVIDIA reports related state through Xid events, NVML or nvidia-smi, row-remapping fields, and recovery-action flags. Xid 48 reports an uncorrectable ECC event, while Xids 94 and 95 distinguish contained and uncontained outcomes on supported products.
Is this what broke your run? Paste your log.
You're reading about CUDA uncorrectable ECC error on an NVIDIA GPU. Paste your own crash log or traceback below and get the real root cause for YOUR run, not this generic entry. No account, no card. Logs are masked at ingress and never saved to account history.
Want 14 days on the Scale plan?
Request a work-email trial for up to 50 diagnoses a day, alerts, history, and follow-up questions. No credit card or automatic subscription.
Why it happens (the mechanism)
A memory or cache location returned data outside ECC's correction capability. The event can be isolated by containment, can require a GPU reset so pending row remapping takes effect, or can expose a persistent condition that meets NVIDIA's RMA policy after field validation. The user-visible CUDA exception is the workload impact, not the complete hardware disposition.
What you'll observe
- The affected application can terminate or report corrupted execution state.
- An uncontained event can affect more than the process that encountered the faulty location.
- Resetting before evidence capture can erase the incident context needed for support and RMA review.
- Automatically replacing every GPU after one uncorrectable event can create false RMAs.
Common symptoms and what they mean
| Symptom | Why it happens |
|---|---|
| RuntimeError: CUDA error: uncorrectable ECC error encountered | ECC detected a memory result that could not be corrected. |
| Kernel logs contain Xid 48 and may also contain Xid 94 or Xid 95. | The physical owner and required action depend on the reported location, containment state, recovery-action flag, and persistent row-remapping or SRAM threshold state. |
| nvidia-smi -q reports volatile or aggregate uncorrectable ECC state, row-remapping state, or a recovery action. | The event becomes an RMA case only when NVIDIA's policy condition is met and validated by the field diagnostic process. |
| The affected CUDA context or application stops making valid progress. | ECC detected a memory result that could not be corrected. |
Which systems are affected
- NVIDIA data-center GPUs with ECC-enabled memory
- Multi-tenant or MIG systems where containment determines blast radius
- Schedulers that need a drain, reset, validation, and return-to-service workflow
How to confirm this is the problem
Use this checklist to test the hypothesis against a small reproduction. No single line proves the root cause, so preserve the preceding events and compare one variable at a time.
- ✓Find the first Xid and CUDA error for the affected GPU and map its PCI bus ID or UUID to the job and rank.
- ✓Determine whether Xid 94 or Xid 95, or the corresponding recovery-action state, reports a contained or uncontained error.
- ✓Capture full nvidia-smi -q output before reset, including ECC and row-remapping fields exposed by the device.
- ✓Follow the required reset or recovery action, then run the platform-approved GPU diagnostic.
- ✓Return the GPU to service only after the same production-shaped control passes and no new uncorrectable event appears.
Searchable error signature
NVRM: Xid (PCI:0000:01:00): 95, UncontainedUse this text as a lookup key in logs and upstream issue trackers. It is not presented as a captured customer log. Confirm the cause from your own preceding events, versions, configuration and the cited references.
The fix and the prevention pattern
The root cause is on this page and stays free. A free account adds the exact remediation steps, keeps your diagnoses instead of discarding them, and unlocks the fix on every entry in the encyclopedia.
Sign up free. Unlock the full analysisNo credit card · 3 free diagnoses · Instant access
Why the recommended fix works
Containment, recovery, and RMA are different decisions. Preserving the Xid and device state identifies the blast radius. Following the recovery-action and row-remapping state restores the hardware at the required boundary. Field diagnostics prevent an unsupported replacement decision based only on a wrapper exception.
Code examples
# Preserve evidence before a reset
dmesg -T | grep -iE 'NVRM|Xid|ECC'
nvidia-smi -q
nvidia-smi --query-gpu=timestamp,uuid,pci.bus_id,ecc.errors.uncorrected.volatile.total,ecc.errors.uncorrected.aggregate.total --format=csv
# Scheduler containment example
scontrol update NodeName=<node> State=DRAIN Reason='uncorrectable ECC investigation'Adapt the snippet to your framework. The same pattern holds for PyTorch Lightning, Hugging Face Trainer, DeepSpeed, Megatron-LM, and vLLM training wrappers. Where the wrapper exposes a config flag (for examplelr_scheduler_type in Trainer), prefer the flag over the imperative API to keep the schedule declarative and reproducible.
Best practices by model family
| Model / Stack | Recommendation | Notes |
|---|---|---|
| Immediate containment | Stop the affected allocation and preserve evidence | Do this before a reset changes volatile state. |
| Recovery | Follow the reported recovery action | A contained event and an uncontained event do not have the same blast radius. |
| RMA | Use policy state plus field diagnostics | One generic CUDA exception is not an RMA verdict. |
With the fix vs without the fix
| Dimension | With the fix | Without the fix |
|---|---|---|
| Contained error | The error-containment process limited propagation | Unaffected workloads can remain valid on supported architectures |
| Uncontained error | Erroneous data may not have been contained | Use the reported recovery action and a broader incident boundary |
| RMA evidence | Row-remapping failure or SRAM threshold state validated by field diagnostics | A replacement decision based only on uncorrectable ECC text |
Diagnostic note
“The costly mistake is collapsing incident containment, hardware recovery, and RMA into one automatic action. Drain first, preserve evidence, follow the device's recovery state, and let the validated hardware policy decide replacement.”
Visual fingerprint
uncorrectable ECC event
|
v
preserve Xid and device state
|
v
contained or uncontained?
|
v
follow recovery action
|
+-- diagnostic passes --> controlled re-admission
+-- RMA policy met ----> vendor replacement workflowXid 48 in context
Xid 48 is one of a small set of codes the NVIDIA driver uses to report GPU faults, and the number is most of the diagnosis: it tells you whether you are looking at your own code, the driver, or a board that needs replacing.
Compare every Xid code side by sideDiagnose this failure in VS Code
Select the traceback or open the failed terminal, then run Denpex locally to see the initiating rank, collateral failures, exact fix, and verification command without uploading the log.
Install the free VS Code extensionRoot cause
- ECC detected a memory result that could not be corrected.
- The physical owner and required action depend on the reported location, containment state, recovery-action flag, and persistent row-remapping or SRAM threshold state.
- The event becomes an RMA case only when NVIDIA's policy condition is met and validated by the field diagnostic process.
The fix and how to prevent it
Unlock the full remediation runbook
14 days on the Scale plan, up to 50 diagnoses a day. Step-by-step remediation, the RMA evidence payload, and multi-node correlation on your own logs. No card, and it does not roll into a subscription.
Frequently asked questions
Questions engineers and on-call staff commonly ask about this failure.
Does one uncorrectable ECC error always require GPU replacement?
Should I reset the GPU immediately?
What should I capture for support?
When can the GPU return to service?
How does this prevent false RMA?
Don't just read the fix, diagnose your run
The encyclopedia tells you what went wrong. Denpex tells you what went wrong in YOUR training run. With your logs, your config, and your stack.