{
  "slug": "nvme-do-not-retry",
  "term": "NVMe Do Not Retry",
  "aliases": [
    "NVMe DNR",
    "Do Not Retry bit"
  ],
  "definition": "NVMe Do Not Retry is a completion-status flag indicating that resubmitting the same command to any controller in the NVM subsystem is expected to fail.",
  "note": "Meaning: DNR=1 concerns the same command, not a diagnosis that the whole SSD has permanently failed. DNR=0 means a retry may succeed, not that it will. Interpret the flag with Status Code Type and Status Code. [base23-retry]\n\nRecovery: The specification recommends DNR=0 when a command is aborted by time-limited error recovery. A clear DNR bit does not require unlimited retries. Command Retry Delay supplies separate timing guidance only when its prerequisites hold. [base23-retry]\n\nHost decision: Linux v6.12 nvme_decide_disposition also stops failed requests for a block-layer no-retry condition or an exhausted retry limit. Later branches distinguish authentication and multipath failover from ordinary requeueing. DNR=0 alone does not establish that this host will retry. [linux-disposition]",
  "related": [
    "nvme",
    "nvme-completion-queue",
    "nvme-command-retry-delay",
    "nvme-error-information-log",
    "io-timeout",
    "retry-budget"
  ],
  "citations": [
    {
      "id": "base23-retry",
      "title": "NVM Express Base 2.3, section 4.2.3, Figure 100 and Identify Controller Figure 328: DNR, CRD and CRDT1-3",
      "url": "https://nvmexpress.org/wp-content/uploads/NVM-Express-Base-Specification-Revision-2.3-2025.08.01-Ratified.pdf",
      "accessed": "2026-10-23"
    },
    {
      "id": "linux-disposition",
      "title": "Linux v6.12, nvme_decide_disposition: stop, authenticate, fail over or retry",
      "url": "https://github.com/torvalds/linux/blob/v6.12/drivers/nvme/host/core.c#L394-L417",
      "accessed": "2026-10-23"
    }
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-23",
  "provenance": [
    "Versioned protocol interpretation, not a device failure diagnosis or hardware experiment."
  ]
}
