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.
- Symptom
NVRM: Xid (PCI:0000:01:00): 95, Uncontained- Root 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.
- Recommended fix
- Preserve kernel Xid lines, nvidia-smi -q, GPU UUID, PCI bus ID, job and rank mapping, and scheduler timestamps before reset or reboot.
- How Denpex helps
- Denpex investigates CUDA uncorrectable ECC error on an NVIDIA GPU using the evidence you provide or your connected workload collects. Earlier rank, host or application evidence is needed to distinguish an initiating failure from a downstream report.
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 traceback and relevant evidence for an investigation of your workload, with a next action or a specific missing fact. A reference entry does not establish your cause. No account or card for the free diagnosis. Review data handling before submitting sensitive logs.
Before uploading, review cloud data handling and local options.
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.
Root 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
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, saved history, and the fix on every entry in the encyclopedia.
Sign up free. Unlock the full analysisNo credit card. Daily allowance follows verified trust tier. 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 extensionFrequently 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.