Storage & Filesystems

NVMe fails after idle or resume

Use a controlled NVMe power-state comparison when failures follow idle or resume; separate APST from PCIe ASPM and system suspend behavior.

On this page
  1. Symptoms & scope
  2. Possible causes
  3. Diagnose safely
  4. Evidence-guided next steps
  5. References & review
  6. Related problems

Symptoms & scope

  • Storage works under activity but disappears after a quiet period.
  • The first I/O after wake-up triggers a reset.

Relevant environment

Local NVMe SSDs with APST support; kernel parameter effects depend on the controller and its quirks.

Recognizable messages (synthetic examples)
nvme nvme0: failed to set APST feature (-19)

Inspect earlier controller errors; APST setup may fail because the controller is already unavailable, so this is not proof APST caused a crash.

Possible causes

These are possible explanations, not a confirmed diagnosis. Several independent faults can coexist.

  • A controller may mishandle an autonomous power-state transition; timing evidence and a controlled comparison are needed.
  • Suspend/resume ordering, PCIe ASPM or firmware can produce similar symptoms without APST being responsible.

Diagnose safely

Run one command at a time in the relevant session. Read the explanation first. Uppercase placeholders need your own values; tools and privileges vary by distribution. These commands are displayed here and never executed by the website.

Check 1

Read the APST latency policy used for newly enumerated devices; no administrator rights normally needed.

cat /sys/module/nvme_core/parameters/default_ps_max_latency_us

Interpret the result: Zero disables APST selection by this policy. A nonzero value permits suitable states but does not prove the affected drive actually entered one.

Check 2

Read kernel events near the last idle or suspend cycle; journal privileges may be required.

journalctl -k -b --no-pager -n 400

Interpret the result: APST setup errors concern feature programming, while resume I/O timeouts show availability loss. Neither identifies the exact power-management layer alone.

Evidence-guided next steps

Compare one boot with APST disabled

Only if failures reliably follow idle or wake, append nvme_core.default_ps_max_latency_us=0 to one boot entry using the bootloader editor. Repeat the same idle or wake interval, preserving the original entry.

Precautions: Disabling APST can increase SSD power and temperature. Do not simultaneously disable ASPM or change the kernel; otherwise the result cannot distinguish causes.

Recovery / rollback: Boot the unchanged entry to restore the original policy. Persist a workaround only after repeatable evidence and a model-specific review.

Did this solution help you?

Share this solution#

Check firmware and resume regressions

If the single-boot APST change has no effect, remove it and compare a previously working supported kernel. Check SSD and system firmware advisories for the exact models, keeping suspend and idle cases as separate tests.

Precautions: Keep backups and a bootable kernel. A successful short comparison is evidence, not a guarantee of long-term stability.

Recovery / rollback: Restore the previous kernel selection and remove only the experimental parameter or configuration change.

Did this solution help you?

Share this solution#

References & review

This guide was prepared from primary project or distribution sources and reviewed on the date shown. This is an editorial source check, not evidence that a fix was reproduced on your hardware. Diagnostic log examples are synthetic fixtures. Version-dependent details must be checked against your installed release.