NVIDIA XID Error Codes Explained: a Reference for GPU Operators

When something goes wrong on an NVIDIA GPU, the driver writes a short numeric event code — an XID — to the kernel log. You'll meet them in dmesg | grep -i xid, in DCGM alerts, and in support tickets, usually before any human explanation arrives. The number is not the diagnosis: it is a signpost telling you which fault family to investigate — the application's own code, GPU memory, the interconnect, the bus, or the driver/firmware stack.

The operator workflow is the same every time: identify the code, classify the fault family, confirm with evidence (ECC counters, link telemetry, temperature, scheduler state), contain the blast radius, and only then decide how far recovery must go. This page maps the codes you are most likely to meet onto that workflow.

CodeFault familyMeaningFirst action
XID 13ApplicationGraphics engine exception — illegal instruction or out-of-range addressDebug the job's code, not the GPU
XID 31ApplicationGPU memory page fault — invalid address accessDebug with compute-sanitizer
XID 43ApplicationApp hit an error and was stopped; GPU recoveredNotify the job owner; no hardware action
XID 45ContextPreemptive cleanup of a job's channelsLook at what happened just before it
XID 48MemoryDouble-bit ECC error — uncorrectableDrain the node, preserve evidence, RMA path
XID 63MemoryRow remapping recorded (self-healing pending)Schedule a drain + GPU reset
XID 64MemoryRow remapping failedDrain and open an RMA
XID 74InterconnectNVLink error (CRC/flit) — link, connector, or NVSwitch portCheck link counters and physical path
XID 79BusGPU has fallen off the busGPU reset; if it fails, reboot the node
XID 92MemoryHigh single-bit (corrected) ECC error rateWatch the trend; plan maintenance
XID 94MemoryContained ECC error — one process affectedRestart the affected workload only
XID 95MemoryUncontained ECC error — GPU state untrustedDrain and reset/reboot
XID 119FirmwareGSP RPC timeout — GPU System Processor hungGPU reset/reboot; chase driver versions if it repeats
XID 149InterconnectNVLink5 fatal error on Blackwell (NETIR subcodes)Same family as 74: telemetry, cables, peer device
XID 154MetaRecovery action for a preceding XIDTake the action the message names

Application faults — the job's bug, not the hardware

The most common operator mistake: RMA-ing a healthy GPU because an application misbehaved on it. These codes follow the job, not the silicon.

XID 13 — Graphics engine exception

Raised most often when the running application executes an illegal instruction or touches an out-of-range address. The telltale evidence is correlation: it appears whenever one specific job runs, while everything else on the same GPU completes cleanly.

First action: treat it as an application bug — have the job owner debug the kernel. RMA is for hardware-integrity evidence, and this isn't that.

XID 31 — GPU memory page fault

The application asked the GPU to read or write an address it had no right to touch — the GPU-side equivalent of a segfault, usually surfacing as CUDA error: an illegal memory access was encountered. Clean ECC counters alongside it confirm the memory hardware is fine.

First action: hand it back to the developer with compute-sanitizer. The fix lives in code, not in a parts order.

XID 43 — Application stopped, GPU recovered

A user application hit an error and its GPU work was halted, while the GPU itself recovered and kept serving other contexts. It is an application-death notice, not a hardware alarm.

First action: let the job owner debug; the node needs nothing.

XID 45 — Preemptive cleanup

The driver tore down a job's channels — commonly because the process was killed (your own SIGKILL included) or a preceding fault forced cleanup. Its value is context, not cause.

First action: read the log lines before it. If you just killed the job, this is the receipt.

Memory integrity — a spectrum, not a single alarm

GPU memory failures escalate through stages: correction working overtime → self-healing → containment → uncorrectable. Each stage has its own code and its own proportionate response.

XID 92 — High single-bit ECC error rate

ECC is correcting an elevated rate of single-bit errors. Nothing is corrupted, but healthy memory doesn't need constant correction — this is the leading indicator on the memory spectrum.

First action: tighten monitoring on SBE/DBE counters (DCGM fields 156/157), check for remap events, and plan service per your fleet policy. Do not panic-drain, and never disable ECC to silence it.

XID 63 — Row remapping event recorded

The GPU recorded a degraded memory row for remapping to spare cells — self-healing working as designed. The remap only takes effect after a GPU reset.

First action: schedule a drain and GPU reset at the next maintenance window, then verify the remap completed with nvidia-smi -q. Maintenance to plan, not an emergency.

XID 64 — Row remapping failure

The GPU tried to retire/remap the degraded row and could not — the self-healing machinery itself failed. That failure is what separates it from XID 63.

First action: drain the node and open an RMA. When the repair path breaks, replacement is the safe conclusion.

XID 94 — Contained ECC error

On A100/H100-class GPUs, error containment isolated an uncorrectable error to the one process that touched the poisoned data. The blast radius was a single workload — the feature succeeded.

First action: restart the affected workload, note the event (a row remap often follows), and keep the GPU in service.

XID 95 — Uncontained ECC error

Containment failed: the error's reach could not be limited to one process, so every context on the GPU is suspect. Severity-wise this sits beside XID 48.

First action: drain the node, reset the GPU or reboot, and verify retired-page/remap state before returning it to service.

XID 48 — Double-bit ECC error

An uncorrectable memory error: ECC can repair single flipped bits, but a double-bit error means the data can no longer be trusted. Confirm with the DBE counter (DCGM field 157).

First action: stop new work, preserve the evidence, drain or isolate the node, and follow the hardware support / RMA path.

Interconnect — the link between GPUs

The same fault family wears different numbers across hardware generations. Know the family, not just the code.

XID 74 — NVLink error

Signal-integrity trouble on an NVLink connection — rising CRC/flit error counts point at a cable, connector, or NVSwitch port. Confirm with nvidia-smi nvlink -e; a degraded path also shows up as PHB where NV# should be in nvidia-smi topo -m.

First action: isolate the link, inspect the physical path, and check the peer device. AllReduce collapsing from ~180 GB/s to PCIe speeds is the workload-level symptom.

XID 149 — NVLink5 fatal error (Blackwell)

On B100/GB200-class systems, the NVLink fault family reports as XID 149 with NETIR subcodes (link-down, bit-error-rate, data errors) instead of XID 74. Same family, new generation: an operator who only knows 74 can miss it on a Blackwell fleet.

First action: the familiar link playbook — telemetry, cable/connector signal integrity, the peer GPU or switch — while the exact recovery (reset vs. ignore) depends on the reported subcode.

Bus, firmware, and the driver's own guidance

When the GPU stops answering entirely, the question becomes how far recovery must go — and sometimes the driver tells you outright.

XID 79 — GPU has fallen off the bus

The system lost contact with the GPU — it stops appearing in nvidia-smi. This is a reachability failure, not a memory event.

First action: try nvidia-smi --gpu-reset. If the reset fails (for example, "GPU is still in use"), a hard node reboot is required — don't keep poking a GPU the system can no longer control.

XID 119 — GSP RPC timeout

Modern drivers delegate work to the GSP (GPU System Processor) firmware on the card; XID 119 means an RPC to that firmware timed out. The GPU can look completely frozen — nvidia-smi itself hangs — even though the compute silicon is fine.

First action: GPU reset or node reboot to recover. Recurring GSP timeouts point at driver/firmware versions, not failed hardware.

XID 154 — GPU recovery action changed

Not a fault: an informational companion where the driver states what recovery the preceding XID requires — for example GPU Reset Required or Node Reboot Required. It removes the guesswork about how far recovery must go.

First action: pair it with the primary code for root cause, and take exactly the action it names.

Reading about XIDs is the easy half. Aegis-GPU injects these exact faults — XID 48 ECC failures, XID 79 bus drops, XID 74 link errors — into a simulated GPU cluster so you can practice the diagnosis and recovery with real commands, free.

PRACTICE THESE FAULTS LIVE

Summarized from NVIDIA's public XID error documentation and field experience; always confirm against the current docs for your driver version. Independent training simulator — not affiliated with, sponsored by, or endorsed by NVIDIA Corporation.