Technical guide
PCIe AER Explained: Correctable, Uncorrectable, Fatal, and Non-Fatal Errors
Understand PCIe Advanced Error Reporting, correctable and uncorrectable errors, fatal versus non-fatal severity, root-port reporting, WHEA, Linux AER, and what an error log can actually prove.
On this page
- AER adds detailed error reporting to the PCIe hierarchy
- Correctable does not mean imaginary or automatically harmless at any frequency
- Uncorrectable errors split into non-fatal and fatal severity
- Root ports collect error information from below them
- Windows WHEA can carry PCIe error evidence, but WHEA is broader than AER
- Linux exposes both AER logs and per-device counters
- Fatal and non-fatal recovery paths are intentionally different
- Use AER as evidence in a controlled diagnosis, not as a parts-replacement verdict
AER adds detailed error reporting to the PCIe hierarchy
PCI Express Advanced Error Reporting, usually shortened to AER, is an extended PCIe capability for recording and reporting errors associated with PCIe links and transactions. It builds on PCIe baseline error reporting with more detailed status, severity, source, and diagnostic information. Operating systems can use that information to log an event and, for errors that need software involvement, coordinate recovery.
AER is about error handling, not link speed. It does not define whether a device runs at PCIe Gen 3, Gen 4, or Gen 5, how many lanes it negotiates, or how much bandwidth it receives. It is also separate from Active State Power Management (ASPM), which controls supported low-power link states during idle periods.
| Class | What the classification means | Recovery implication |
|---|---|---|
| Correctable | The PCIe protocol/hardware can recover without loss of data or software recovery | The event can be logged, but no AER recovery action is required |
| Uncorrectable, non-fatal | A transaction can be unreliable or lost while the PCIe link itself remains usable | Software and the affected driver hierarchy may participate in recovery; a reset is not inherently mandatory |
| Uncorrectable, fatal | The error makes the PCIe link unreliable | Recovery requires stronger intervention; Linux AER treats an upstream reset as necessary |
Correctable does not mean imaginary or automatically harmless at any frequency
Linux kernel AER documentation defines correctable errors as errors that the PCIe protocol can recover from without software intervention or loss of data. The AER driver can clear the correctable status and log the event without initiating recovery. Examples exposed by Linux AER counters include Receiver Error, Bad TLP, Bad DLLP, Replay Number Rollover, Replay Timer Timeout, and Advisory Non-Fatal.
That classification describes the handling of the individual PCIe error; it is not a universal health threshold. A single corrected event does not prove that a GPU, SSD, motherboard, riser, cable, CPU, or PSU is failing. Conversely, a large or changing stream of corrected errors can be useful diagnostic evidence when it correlates with a reproducible symptom. There is no source-backed universal count at which every PC should replace a component.
Uncorrectable errors split into non-fatal and fatal severity
An uncorrectable error is different because functionality is affected. The PCIe hierarchy further classifies these errors by severity. Linux documents a non-fatal error as one where a particular transaction is unreliable while the link remains functional; a fatal error makes the link itself unreliable. Intel platform documentation exposes the corresponding AER severity register, where supported uncorrectable error conditions are classified as fatal or non-fatal.
The words are technical classifications, not predictions about whether Windows will crash or whether a component is permanently damaged. A non-fatal event can still matter to an application or driver, and a fatal AER event can trigger link/device recovery without proving permanent hardware failure. The exact system-visible outcome depends on the error, hierarchy, driver support, firmware, and operating system.
Root ports collect error information from below them
PCIe is a hierarchy. An endpoint such as a GPU, NVMe controller, or network adapter connects through a root port and may also sit behind switches or bridges. Linux documents that when an AER-capable device captures an error, it can send the corresponding PCIe error message toward the root port. The root port records information including error status and the reporting agent’s Requester ID, then can notify software when reporting is enabled.
This topology matters when reading logs. The device named as a root port is often the reporting or collection point for a hierarchy, not necessarily the physical part that caused the underlying electrical, protocol, firmware, or transaction problem. Linux root-port AER counters are explicitly cumulative for error messages reported to that root port and can include messages originating elsewhere in its PCIe hierarchy.
Windows WHEA can carry PCIe error evidence, but WHEA is broader than AER
Windows Hardware Error Architecture, or WHEA, is the Windows framework for hardware error reporting. Microsoft documents multiple hardware error sources, including processor and platform sources. PCIe AER is one specific source: Microsoft notes that the Windows PCI bus driver discovers PCIe AER error sources rather than the platform-specific hardware error driver used to discover several other WHEA sources.
That means “WHEA error” and “PCIe AER error” are not interchangeable labels. When diagnosing a Windows event, inspect the actual error record, source, PCIe identifiers, status information, and the circumstances around the failure instead of assuming every WHEA entry is a PCIe problem or every PCIe-related entry identifies one replaceable component.
Linux exposes both AER logs and per-device counters
Linux can provide AER handling through its PCIe AER root driver when the platform grants the operating system control. Current kernel documentation states that firmware and Linux must not both independently handle AER; firmware can grant AER control through ACPI _OSC. When Linux owns AER handling, the kernel can gather error information, report it, and perform recovery actions.
Linux also exposes counters for correctable, non-fatal, and fatal AER events through sysfs on supported devices and root ports. Those counters are useful for establishing whether errors are recurring and where they are being reported, but they still need topology and workload context. The kernel documentation notes that one error message can represent multiple status bits, so even its aggregate counters should not be treated as a universal failure score.
Fatal and non-fatal recovery paths are intentionally different
Linux provides a concrete example of how an operating system can react to severity. For an uncorrectable non-fatal event, affected drivers are notified and may be able to recover without a reset; a driver can also request one. For a fatal event, Linux treats the link as unreliable and requires an upstream reset as part of the recovery path.
That behavior should not be generalized into a claim that every operating system uses the same callbacks or presents the same user-visible symptoms. AER defines the PCIe error information and classifications; firmware ownership, operating-system architecture, driver recovery support, and the topology determine how a particular machine handles the event.
Use AER as evidence in a controlled diagnosis, not as a parts-replacement verdict
When AER evidence appears alongside crashes, device resets, storage errors, link retraining, or another reproducible symptom, preserve the exact log and identify the PCIe topology before changing hardware. Note the device and root-port identifiers, error class, status bits, timestamp, workload, firmware and driver versions, negotiated link state, and whether the event repeats under the same conditions.
Then change one relevant variable at a time. Depending on the affected path, that can mean verifying seating and power connections, removing a riser or adapter for a direct-path test, returning unsupported overclocks or undervolts to defaults, updating documented firmware or drivers, or testing the device in another known-good path. Those are diagnostic experiments, not conclusions embedded in the AER label itself.
Do not disable AER merely to make a log disappear. Suppressing reporting can hide evidence without fixing the condition that generated it. Likewise, do not change PCIe generation, ASPM, BIOS settings, or replace a PSU simply because an internet checklist associates that tweak with a generic AER message. A useful diagnosis requires a repeatable symptom and evidence that the tested change affects it.
Sources
Primary and technical sources
Technical details can vary by exact model, firmware, and platform. These are the sources used for the factual claims in this article.
01 Linux Kernel Documentation
PCI Express Advanced Error Reporting Driver Guide HOWTO02 Linux Kernel Documentation
Linux sysfs PCIe AER statistics and counters03 Microsoft
WHEA error source discovery and PCIe AER ownership04 Intel
PCIe error classes and AER status registers05 Intel
PCIe Uncorrectable Error Severity register
Related
Continue from here
Useful next steps selected from the same technical reference and publication system.
Technical guide
PCIe ASPM Explained: L0s, L1, Power Saving, and Latency
Understand PCIe Active State Power Management, L0s, L1 and L1 substates, exit latency, Windows and Linux policy, and why ASPM is not a universal performance tweak.
Tool
PCIe Link Bandwidth Calculator
Calculate theoretical one-direction PCIe link bandwidth by generation and lane width.
Technical guide
Windows Page File Explained: Virtual Memory and Commit Limit
Understand what the Windows page file does, how it extends the system commit limit, how paging differs from RAM use, and why crash dumps can depend on it.
Tool
DDR Memory Latency Calculator
Convert DDR data rate and CAS latency cycles into CAS timing in nanoseconds.