Skip to content

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.

Quick answer

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.

Hardware#cuda#ecc#uncorrectable-ecc#xid-48#xid-94#xid-95

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.

Live diagnosis, no signup

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.

training_logs.txt
No log to hand? Try one:
3 free diagnoses/day

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.

Evaluate one incident

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

SymptomWhy it happens
RuntimeError: CUDA error: uncorrectable ECC error encounteredECC 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

search key
NVRM: Xid (PCI:0000:01:00): 95, Uncontained

Use 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 analysis

No 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

snippet
# 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 / StackRecommendationNotes
Immediate containmentStop the affected allocation and preserve evidenceDo this before a reset changes volatile state.
RecoveryFollow the reported recovery actionA contained event and an uncontained event do not have the same blast radius.
RMAUse policy state plus field diagnosticsOne generic CUDA exception is not an RMA verdict.

With the fix vs without the fix

DimensionWith the fixWithout the fix
Contained errorThe error-containment process limited propagationUnaffected workloads can remain valid on supported architectures
Uncontained errorErroneous data may not have been containedUse the reported recovery action and a broader incident boundary
RMA evidenceRow-remapping failure or SRAM threshold state validated by field diagnosticsA 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 response path
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 workflow
The workflow separates workload containment, GPU recovery, and evidence-based RMA.

Xid 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 side

Diagnose 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 extension

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

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.

We send a single-use code tied to that address. One automatic evaluation per company domain. Invite teammates from the trial after activation. The free diagnoses above stay open to everyone.

Frequently asked questions

Questions engineers and on-call staff commonly ask about this failure.

Does one uncorrectable ECC error always require GPU replacement?
No. The required response depends on containment, recovery action, row-remapping or SRAM threshold state, and field diagnostics. NVIDIA's RMA policy is more specific than the generic CUDA exception.
Should I reset the GPU immediately?
Contain the workload first and preserve volatile evidence. Then follow the reported recovery action and the approved service procedure.
What should I capture for support?
Capture Xid lines, full nvidia-smi -q, GPU UUID and PCI bus ID, scheduler ownership, containment and recovery state, and the field diagnostic result.
When can the GPU return to service?
Only after the required recovery completes, the supported diagnostic passes, and a production-shaped validation shows no recurrence.
How does this prevent false RMA?
It requires the documented device state and diagnostic result instead of treating one application-level error string as proof of permanent board failure.

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.