---
name: "nvme_status_field"
section: "2"
platform: "linux"
package: "libnvme-dev"
version: "1.13-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nvme_status_field"
---

# nvme\_status\_field(2)

Defines all parts of the nvme status field: status code, status code type, and additional flags.

## NAME

enum nvme\_status\_field - Defines all parts of the nvme status field: status code, status code type, and additional flags.

## SYNOPSIS

enum nvme\_status\_field {\
     **NVME\_SCT\_GENERIC** , \
\
     **NVME\_SCT\_CMD\_SPECIFIC** , \
\
     **NVME\_SCT\_MEDIA** , \
\
     **NVME\_SCT\_PATH** , \
\
     **NVME\_SCT\_VS** , \
\
     **NVME\_SCT\_MASK** , \
\
     **NVME\_SCT\_SHIFT** , \
\
     **NVME\_SC\_MASK** , \
\
     **NVME\_SC\_SHIFT** , \
\
     **NVME\_SC\_SUCCESS** , \
\
     **NVME\_SC\_INVALID\_OPCODE** , \
\
     **NVME\_SC\_INVALID\_FIELD** , \
\
     **NVME\_SC\_CMDID\_CONFLICT** , \
\
     **NVME\_SC\_DATA\_XFER\_ERROR** , \
\
     **NVME\_SC\_POWER\_LOSS** , \
\
     **NVME\_SC\_INTERNAL** , \
\
     **NVME\_SC\_ABORT\_REQ** , \
\
     **NVME\_SC\_ABORT\_QUEUE** , \
\
     **NVME\_SC\_FUSED\_FAIL** , \
\
     **NVME\_SC\_FUSED\_MISSING** , \
\
     **NVME\_SC\_INVALID\_NS** , \
\
     **NVME\_SC\_CMD\_SEQ\_ERROR** , \
\
     **NVME\_SC\_SGL\_INVALID\_LAST** , \
\
     **NVME\_SC\_SGL\_INVALID\_COUNT** , \
\
     **NVME\_SC\_SGL\_INVALID\_DATA** , \
\
     **NVME\_SC\_SGL\_INVALID\_METADATA** , \
\
     **NVME\_SC\_SGL\_INVALID\_TYPE** , \
\
     **NVME\_SC\_CMB\_INVALID\_USE** , \
\
     **NVME\_SC\_PRP\_INVALID\_OFFSET** , \
\
     **NVME\_SC\_AWU\_EXCEEDED** , \
\
     **NVME\_SC\_OP\_DENIED** , \
\
     **NVME\_SC\_SGL\_INVALID\_OFFSET** , \
\
     **NVME\_SC\_HOSTID\_FORMAT** , \
\
     **NVME\_SC\_KAT\_EXPIRED** , \
\
     **NVME\_SC\_KAT\_INVALID** , \
\
     **NVME\_SC\_CMD\_ABORTED\_PREMEPT** , \
\
     **NVME\_SC\_SANITIZE\_FAILED** , \
\
     **NVME\_SC\_SANITIZE\_IN\_PROGRESS** , \
\
     **NVME\_SC\_SGL\_INVALID\_GRANULARITY** , \
\
     **NVME\_SC\_CMD\_IN\_CMBQ\_NOT\_SUPP** , \
\
     **NVME\_SC\_NS\_WRITE\_PROTECTED** , \
\
     **NVME\_SC\_CMD\_INTERRUPTED** , \
\
     **NVME\_SC\_TRAN\_TPORT\_ERROR** , \
\
     **NVME\_SC\_PROHIBITED\_BY\_CMD\_AND\_FEAT** , \
\
     **NVME\_SC\_ADMIN\_CMD\_MEDIA\_NOT\_READY** , \
\
     **NVME\_SC\_INVALID\_KEY\_TAG** , \
\
     **NVME\_SC\_HOST\_DISPERSED\_NS\_NOT\_ENABLED** , \
\
     **NVME\_SC\_HOST\_ID\_NOT\_INITIALIZED** , \
\
     **NVME\_SC\_INCORRECT\_KEY** , \
\
     **NVME\_SC\_FDP\_DISABLED** , \
\
     **NVME\_SC\_INVALID\_PLACEMENT\_HANDLE\_LIST** , \
\
     **NVME\_SC\_LBA\_RANGE** , \
\
     **NVME\_SC\_CAP\_EXCEEDED** , \
\
     **NVME\_SC\_NS\_NOT\_READY** , \
\
     **NVME\_SC\_RESERVATION\_CONFLICT** , \
\
     **NVME\_SC\_FORMAT\_IN\_PROGRESS** , \
\
     **NVME\_SC\_INVALID\_VALUE\_SIZE** , \
\
     **NVME\_SC\_INVALID\_KEY\_SIZE** , \
\
     **NVME\_SC\_KV\_KEY\_NOT\_EXISTS** , \
\
     **NVME\_SC\_UNRECOVERED\_ERROR** , \
\
     **NVME\_SC\_KEY\_EXISTS** , \
\
     **NVME\_SC\_CQ\_INVALID** , \
\
     **NVME\_SC\_QID\_INVALID** , \
\
     **NVME\_SC\_QUEUE\_SIZE** , \
\
     **NVME\_SC\_ABORT\_LIMIT** , \
\
     **NVME\_SC\_ABORT\_MISSING** , \
\
     **NVME\_SC\_ASYNC\_LIMIT** , \
\
     **NVME\_SC\_FIRMWARE\_SLOT** , \
\
     **NVME\_SC\_FIRMWARE\_IMAGE** , \
\
     **NVME\_SC\_INVALID\_VECTOR** , \
\
     **NVME\_SC\_INVALID\_LOG\_PAGE** , \
\
     **NVME\_SC\_INVALID\_FORMAT** , \
\
     **NVME\_SC\_FW\_NEEDS\_CONV\_RESET** , \
\
     **NVME\_SC\_INVALID\_QUEUE** , \
\
     **NVME\_SC\_FEATURE\_NOT\_SAVEABLE** , \
\
     **NVME\_SC\_FEATURE\_NOT\_CHANGEABLE** , \
\
     **NVME\_SC\_FEATURE\_NOT\_PER\_NS** , \
\
     **NVME\_SC\_FW\_NEEDS\_SUBSYS\_RESET** , \
\
     **NVME\_SC\_FW\_NEEDS\_RESET** , \
\
     **NVME\_SC\_FW\_NEEDS\_MAX\_TIME** , \
\
     **NVME\_SC\_FW\_ACTIVATE\_PROHIBITED** , \
\
     **NVME\_SC\_OVERLAPPING\_RANGE** , \
\
     **NVME\_SC\_NS\_INSUFFICIENT\_CAP** , \
\
     **NVME\_SC\_NS\_ID\_UNAVAILABLE** , \
\
     **NVME\_SC\_NS\_ALREADY\_ATTACHED** , \
\
     **NVME\_SC\_NS\_IS\_PRIVATE** , \
\
     **NVME\_SC\_NS\_NOT\_ATTACHED** , \
\
     **NVME\_SC\_THIN\_PROV\_NOT\_SUPP** , \
\
     **NVME\_SC\_CTRL\_LIST\_INVALID** , \
\
     **NVME\_SC\_SELF\_TEST\_IN\_PROGRESS** , \
\
     **NVME\_SC\_BP\_WRITE\_PROHIBITED** , \
\
     **NVME\_SC\_INVALID\_CTRL\_ID** , \
\
     **NVME\_SC\_INVALID\_SEC\_CTRL\_STATE** , \
\
     **NVME\_SC\_INVALID\_CTRL\_RESOURCES** , \
\
     **NVME\_SC\_INVALID\_RESOURCE\_ID** , \
\
     **NVME\_SC\_PMR\_SAN\_PROHIBITED** , \
\
     **NVME\_SC\_ANA\_GROUP\_ID\_INVALID** , \
\
     **NVME\_SC\_ANA\_ATTACH\_FAILED** , \
\
     **NVME\_SC\_INSUFFICIENT\_CAP** , \
\
     **NVME\_SC\_NS\_ATTACHMENT\_LIMIT\_EXCEEDED** , \
\
     **NVME\_SC\_PROHIBIT\_CMD\_EXEC\_NOT\_SUPPORTED** , \
\
     **NVME\_SC\_IOCS\_NOT\_SUPPORTED** , \
\
     **NVME\_SC\_IOCS\_NOT\_ENABLED** , \
\
     **NVME\_SC\_IOCS\_COMBINATION\_REJECTED** , \
\
     **NVME\_SC\_INVALID\_IOCS** , \
\
     **NVME\_SC\_ID\_UNAVAILABLE** , \
\
     **NVME\_SC\_INVALID\_DISCOVERY\_INFO** , \
\
     **NVME\_SC\_ZONING\_DATA\_STRUCT\_LOCKED** , \
\
     **NVME\_SC\_ZONING\_DATA\_STRUCT\_NOTFND** , \
\
     **NVME\_SC\_INSUFFICIENT\_DISC\_RES** , \
\
     **NVME\_SC\_REQSTD\_FUNCTION\_DISABLED** , \
\
     **NVME\_SC\_ZONEGRP\_ORIGINATOR\_INVLD** , \
\
     **NVME\_SC\_INVALID\_CONTROLER\_DATA\_QUEUE** , \
\
     **NVME\_SC\_NOT\_ENOUGH\_RESOURCES** , \
\
     **NVME\_SC\_CONTROLLER\_SUSPENDED** , \
\
     **NVME\_SC\_CONTROLLER\_NOT\_SUSPENDED** , \
\
     **NVME\_SC\_CONTROLLER\_DATA\_QUEUE\_FULL** , \
\
     **NVME\_SC\_BAD\_ATTRIBUTES** , \
\
     **NVME\_SC\_INVALID\_PI** , \
\
     **NVME\_SC\_READ\_ONLY** , \
\
     **NVME\_SC\_CMD\_SIZE\_LIMIT\_EXCEEDED** , \
\
     **NVME\_SC\_INCOMPATIBLE\_NS** , \
\
     **NVME\_SC\_FAST\_COPY\_NOT\_POSSIBLE** , \
\
     **NVME\_SC\_OVERLAPPING\_IO\_RANGE** , \
\
     **NVME\_SC\_INSUFFICIENT\_RESOURCES** , \
\
     **NVME\_SC\_CONNECT\_FORMAT** , \
\
     **NVME\_SC\_CONNECT\_CTRL\_BUSY** , \
\
     **NVME\_SC\_CONNECT\_INVALID\_PARAM** , \
\
     **NVME\_SC\_CONNECT\_RESTART\_DISC** , \
\
     **NVME\_SC\_CONNECT\_INVALID\_HOST** , \
\
     **NVME\_SC\_DISCONNECT\_INVALID\_QTYPE** , \
\
     **NVME\_SC\_DISCOVERY\_RESTART** , \
\
     **NVME\_SC\_AUTH\_REQUIRED** , \
\
     **NVME\_SC\_ZNS\_INVALID\_OP\_REQUEST** , \
\
     **NVME\_SC\_ZNS\_ZRWA\_RESOURCES\_UNAVAILABLE** , \
\
     **NVME\_SC\_ZNS\_BOUNDARY\_ERROR** , \
\
     **NVME\_SC\_ZNS\_FULL** , \
\
     **NVME\_SC\_ZNS\_READ\_ONLY** , \
\
     **NVME\_SC\_ZNS\_OFFLINE** , \
\
     **NVME\_SC\_ZNS\_INVALID\_WRITE** , \
\
     **NVME\_SC\_ZNS\_TOO\_MANY\_ACTIVE** , \
\
     **NVME\_SC\_ZNS\_TOO\_MANY\_OPENS** , \
\
     **NVME\_SC\_ZNS\_INVAL\_TRANSITION** , \
\
     **NVME\_SC\_WRITE\_FAULT** , \
\
     **NVME\_SC\_READ\_ERROR** , \
\
     **NVME\_SC\_GUARD\_CHECK** , \
\
     **NVME\_SC\_APPTAG\_CHECK** , \
\
     **NVME\_SC\_REFTAG\_CHECK** , \
\
     **NVME\_SC\_COMPARE\_FAILED** , \
\
     **NVME\_SC\_ACCESS\_DENIED** , \
\
     **NVME\_SC\_UNWRITTEN\_BLOCK** , \
\
     **NVME\_SC\_STORAGE\_TAG\_CHECK** , \
\
     **NVME\_SC\_ANA\_INTERNAL\_PATH\_ERROR** , \
\
     **NVME\_SC\_ANA\_PERSISTENT\_LOSS** , \
\
     **NVME\_SC\_ANA\_INACCESSIBLE** , \
\
     **NVME\_SC\_ANA\_TRANSITION** , \
\
     **NVME\_SC\_CTRL\_PATH\_ERROR** , \
\
     **NVME\_SC\_HOST\_PATH\_ERROR** , \
\
     **NVME\_SC\_CMD\_ABORTED\_BY\_HOST** , \
\
     **NVME\_SC\_CRD** , \
\
     **NVME\_SC\_MORE** , \
\
     **NVME\_SC\_DNR**

};

## Constants

- NVME\_SCT\_GENERIC

  Generic errors applicable to multiple opcodes

- NVME\_SCT\_CMD\_SPECIFIC

  Errors associated to a specific opcode

- NVME\_SCT\_MEDIA

  Errors associated with media and data integrity

- NVME\_SCT\_PATH

  Errors associated with the paths connection

- NVME\_SCT\_VS

  Vendor specific errors

- NVME\_SCT\_MASK

  Mask to get the value of the Status Code Type

- NVME\_SCT\_SHIFT

  Shift value to get the value of the Status Code Type

- NVME\_SC\_MASK

  Mask to get the value of the status code.

- NVME\_SC\_SHIFT

  Shift value to get the value of the status code.

- NVME\_SC\_SUCCESS

  Successful Completion: The command completed without error.

- NVME\_SC\_INVALID\_OPCODE

  Invalid Command Opcode: A reserved coded value or an unsupported value in the command opcode field.

- NVME\_SC\_INVALID\_FIELD

  Invalid Field in Command: A reserved coded value or an unsupported value in a defined field.

- NVME\_SC\_CMDID\_CONFLICT

  Command ID Conflict: The command identifier is already in use.

- NVME\_SC\_DATA\_XFER\_ERROR

  Data Transfer Error: Transferring the data or metadata associated with a command experienced an error.

- NVME\_SC\_POWER\_LOSS

  Commands Aborted due to Power Loss Notification: Indicates that the command was aborted due to a power loss notification.

- NVME\_SC\_INTERNAL

  Internal Error: The command was not completed successfully due to an internal error.

- NVME\_SC\_ABORT\_REQ

  Command Abort Requested: The command was aborted due to an Abort command being received that specified the Submission Queue Identifier and Command Identifier of this command.

- NVME\_SC\_ABORT\_QUEUE

  Command Aborted due to SQ Deletion: The command was aborted due to a Delete I/O Submission Queue request received for the Submission Queue to which the command was submitted.

- NVME\_SC\_FUSED\_FAIL

  Command Aborted due to Failed Fused Command: The command was aborted due to the other command in a fused operation failing.

- NVME\_SC\_FUSED\_MISSING

  Aborted due to Missing Fused Command: The fused command was aborted due to the adjacent submission queue entry not containing a fused command that is the other command.

- NVME\_SC\_INVALID\_NS

  Invalid Namespace or Format: The namespace or the format of that namespace is invalid.

- NVME\_SC\_CMD\_SEQ\_ERROR

  Command Sequence Error: The command was aborted due to a protocol violation in a multi-command sequence.

- NVME\_SC\_SGL\_INVALID\_LAST

  Invalid SGL Segment Descriptor: The command includes an invalid SGL Last Segment or SGL Segment descriptor.

- NVME\_SC\_SGL\_INVALID\_COUNT

  Invalid Number of SGL Descriptors: There is an SGL Last Segment descriptor or an SGL Segment descriptor in a location other than the last descriptor of a segment based on the length indicated.

- NVME\_SC\_SGL\_INVALID\_DATA

  Data SGL Length Invalid: This may occur if the length of a Data SGL is too short. This may occur if the length of a Data SGL is too long and the controller does not support SGL transfers longer than the amount of data to be transferred as indicated in the SGL Support field of the Identify Controller data structure.

- NVME\_SC\_SGL\_INVALID\_METADATA

  Metadata SGL Length Invalid: This may occur if the length of a Metadata SGL is too short. This may occur if the length of a Metadata SGL is too long and the controller does not support SGL transfers longer than the amount of data to be transferred as indicated in the SGL Support field of the Identify Controller data structure.

- NVME\_SC\_SGL\_INVALID\_TYPE

  SGL Descriptor Type Invalid: The type of an SGL Descriptor is a type that is not supported by the controller.

- NVME\_SC\_CMB\_INVALID\_USE

  Invalid Use of Controller Memory Buffer: The attempted use of the Controller Memory Buffer is not supported by the controller.

- NVME\_SC\_PRP\_INVALID\_OFFSET

  PRP Offset Invalid: The Offset field for a PRP entry is invalid.

- NVME\_SC\_AWU\_EXCEEDED

  Atomic Write Unit Exceeded: The length specified exceeds the atomic write unit size.

- NVME\_SC\_OP\_DENIED

  Operation Denied: The command was denied due to lack of access rights. Refer to the appropriate security specification.

- NVME\_SC\_SGL\_INVALID\_OFFSET

  SGL Offset Invalid: The offset specified in a descriptor is invalid. This may occur when using capsules for data transfers in NVMe over Fabrics implementations and an invalid offset in the capsule is specified.

- NVME\_SC\_HOSTID\_FORMAT

  Host Identifier Inconsistent Format: The NVM subsystem detected the simultaneous use of 64- bit and 128-bit Host Identifier values on different controllers.

- NVME\_SC\_KAT\_EXPIRED

  Keep Alive Timer Expired: The Keep Alive Timer expired.

- NVME\_SC\_KAT\_INVALID

  Keep Alive Timeout Invalid: The Keep Alive Timeout value specified is invalid.

- NVME\_SC\_CMD\_ABORTED\_PREMEPT

  Command Aborted due to Preempt and Abort: The command was aborted due to a Reservation Acquire command.

- NVME\_SC\_SANITIZE\_FAILED

  Sanitize Failed: The most recent sanitize operation failed and no recovery action has been successfully completed.

- NVME\_SC\_SANITIZE\_IN\_PROGRESS

  Sanitize In Progress: The requested function (e.g., command) is prohibited while a sanitize operation is in progress.

- NVME\_SC\_SGL\_INVALID\_GRANULARITY

  SGL Data Block Granularity Invalid: The Address alignment or Length granularity for an SGL Data Block descriptor is invalid.

- NVME\_SC\_CMD\_IN\_CMBQ\_NOT\_SUPP

  Command Not Supported for Queue in CMB: The implementation does not support submission of the command to a Submission Queue in the Controller Memory Buffer or command completion to a Completion Queue in the Controller Memory Buffer.

- NVME\_SC\_NS\_WRITE\_PROTECTED

  Namespace is Write Protected: The command is prohibited while the namespace is write protected as a result of a change in the namespace write protection state as defined by the Namespace Write Protection State Machine.

- NVME\_SC\_CMD\_INTERRUPTED

  Command Interrupted: Command processing was interrupted and the controller is unable to successfully complete the command. The host should retry the command.

- NVME\_SC\_TRAN\_TPORT\_ERROR

  Transient Transport Error: A transient transport error was detected. If the command is retried on the same controller, the command is likely to succeed. A command that fails with a transient transport error four or more times should be treated as a persistent transport error that is not likely to succeed if retried on the same controller.

- NVME\_SC\_PROHIBITED\_BY\_CMD\_AND\_FEAT

  Command Prohibited by Command and Feature Lockdown: The command was aborted due to command execution being prohibited by the Command and Feature Lockdown.

- NVME\_SC\_ADMIN\_CMD\_MEDIA\_NOT\_READY

  Admin Command Media Not Ready: The Admin command requires access to media and the media is not ready.

- NVME\_SC\_INVALID\_KEY\_TAG

  The command was aborted due to an invalid KEYTAG field value.

- NVME\_SC\_HOST\_DISPERSED\_NS\_NOT\_ENABLED

  The command is prohibited while the Host Disperesed Namespace Support (HDISNS) field is not set to 1h in the Host Behavior Support feature.

- NVME\_SC\_HOST\_ID\_NOT\_INITIALIZED

  Host Identifier Not Initialized.

- NVME\_SC\_INCORRECT\_KEY

  The command was aborted due to the key associated with the KEYTAG field being incorrect.

- NVME\_SC\_FDP\_DISABLED

  Command is not allowed when Flexible Data Placement is disabled.

- NVME\_SC\_INVALID\_PLACEMENT\_HANDLE\_LIST

  The Placement Handle List is invalid due to invalid Reclaim Unit Handle Identifier or valid Reclaim Unit Handle Identifier but restricted or the Placement Handle List number of entries exceeded the maximum number allowed.

- NVME\_SC\_LBA\_RANGE

  LBA Out of Range: The command references an LBA that exceeds the size of the namespace.

- NVME\_SC\_CAP\_EXCEEDED

  Capacity Exceeded: Execution of the command has caused the capacity of the namespace to be exceeded.

- NVME\_SC\_NS\_NOT\_READY

  Namespace Not Ready: The namespace is not ready to be accessed as a result of a condition other than a condition that is reported as an Asymmetric Namespace Access condition.

- NVME\_SC\_RESERVATION\_CONFLICT

  Reservation Conflict: The command was aborted due to a conflict with a reservation held on the accessed namespace.

- NVME\_SC\_FORMAT\_IN\_PROGRESS

  Format In Progress: A Format NVM command is in progress on the namespace.

- NVME\_SC\_INVALID\_VALUE\_SIZE

  The value size is not valid.

- NVME\_SC\_INVALID\_KEY\_SIZE

  The KV key size is not valid.

- NVME\_SC\_KV\_KEY\_NOT\_EXISTS

  The Store If Key Exists (SIKE) bit is set to exists.

- NVME\_SC\_UNRECOVERED\_ERROR

  There was an unrecovered error when reading from the meidum.

- NVME\_SC\_KEY\_EXISTS

  The Store If No Key Exists (SINKE) bit is set to '1' in the Store Option field and the KV key exists.

- NVME\_SC\_CQ\_INVALID

  Completion Queue Invalid: The Completion Queue identifier specified in the command does not exist.

- NVME\_SC\_QID\_INVALID

  Invalid Queue Identifier: The creation of the I/O Completion Queue failed due to an invalid queue identifier specified as part of the command. An invalid queue identifier is one that is currently in use or one that is outside the range supported by the controller.

- NVME\_SC\_QUEUE\_SIZE

  Invalid Queue Size: The host attempted to create an I/O Completion Queue with an invalid number of entries.

- NVME\_SC\_ABORT\_LIMIT

  Abort Command Limit Exceeded: The number of concurrently outstanding Abort commands has exceeded the limit indicated in the Identify Controller data structure.

- NVME\_SC\_ABORT\_MISSING

  Abort Command is missing: The abort command is missing.

- NVME\_SC\_ASYNC\_LIMIT

  Asynchronous Event Request Limit Exceeded: The number of concurrently outstanding Asynchronous Event Request commands has been exceeded.

- NVME\_SC\_FIRMWARE\_SLOT

  Invalid Firmware Slot: The firmware slot indicated is invalid or read only. This error is indicated if the firmware slot exceeds the number supported.

- NVME\_SC\_FIRMWARE\_IMAGE

  Invalid Firmware Image: The firmware image specified for activation is invalid and not loaded by the controller.

- NVME\_SC\_INVALID\_VECTOR

  Invalid Interrupt Vector: The creation of the I/O Completion Queue failed due to an invalid interrupt vector specified as part of the command.

- NVME\_SC\_INVALID\_LOG\_PAGE

  Invalid Log Page: The log page indicated is invalid. This error condition is also returned if a reserved log page is requested.

- NVME\_SC\_INVALID\_FORMAT

  Invalid Format: The LBA Format specified is not supported.

- NVME\_SC\_FW\_NEEDS\_CONV\_RESET

  Firmware Activation Requires Conventional Reset: The firmware commit was successful, however, activation of the firmware image requires a conventional reset.

- NVME\_SC\_INVALID\_QUEUE

  Invalid Queue Deletion: Invalid I/O Completion Queue specified to delete.

- NVME\_SC\_FEATURE\_NOT\_SAVEABLE

  Feature Identifier Not Saveable: The Feature Identifier specified does not support a saveable value.

- NVME\_SC\_FEATURE\_NOT\_CHANGEABLE

  Feature Not Changeable: The Feature Identifier is not able to be changed.

- NVME\_SC\_FEATURE\_NOT\_PER\_NS

  Feature Not Namespace Specific: The Feature Identifier specified is not namespace specific. The Feature Identifier settings apply across all namespaces.

- NVME\_SC\_FW\_NEEDS\_SUBSYS\_RESET

  Firmware Activation Requires NVM Subsystem Reset: The firmware commit was successful, however, activation of the firmware image requires an NVM Subsystem.

- NVME\_SC\_FW\_NEEDS\_RESET

  Firmware Activation Requires Controller Level Reset: The firmware commit was successful; however, the image specified does not support being activated without a reset.

- NVME\_SC\_FW\_NEEDS\_MAX\_TIME

  Firmware Activation Requires Maximum Time Violation: The image specified if activated immediately would exceed the Maximum Time for Firmware Activation (MTFA) value reported in Identify Controller.

- NVME\_SC\_FW\_ACTIVATE\_PROHIBITED

  Firmware Activation Prohibited: The image specified is being prohibited from activation by the controller for vendor specific reasons.

- NVME\_SC\_OVERLAPPING\_RANGE

  Overlapping Range: The downloaded firmware image has overlapping ranges.

- NVME\_SC\_NS\_INSUFFICIENT\_CAP

  Namespace Insufficient Capacity: Creating the namespace requires more free space than is currently available.

- NVME\_SC\_NS\_ID\_UNAVAILABLE

  Namespace Identifier Unavailable: The number of namespaces supported has been exceeded.

- NVME\_SC\_NS\_ALREADY\_ATTACHED

  Namespace Already Attached: The controller is already attached to the namespace specified.

- NVME\_SC\_NS\_IS\_PRIVATE

  Namespace Is Private: The namespace is private and is already attached to one controller.

- NVME\_SC\_NS\_NOT\_ATTACHED

  Namespace Not Attached: The request to detach the controller could not be completed because the controller is not attached to the namespace.

- NVME\_SC\_THIN\_PROV\_NOT\_SUPP

  Thin Provisioning Not Supported: Thin provisioning is not supported by the controller.

- NVME\_SC\_CTRL\_LIST\_INVALID

  Controller List Invalid: The controller list provided contains invalid controller ids.

- NVME\_SC\_SELF\_TEST\_IN\_PROGRESS

  Device Self-test In Progress: The controller or NVM subsystem already has a device self-test operation in process.

- NVME\_SC\_BP\_WRITE\_PROHIBITED

  Boot Partition Write Prohibited: The command is trying to modify a locked Boot Partition.

- NVME\_SC\_INVALID\_CTRL\_ID

  Invalid Controller Identifier:

- NVME\_SC\_INVALID\_SEC\_CTRL\_STATE

  Invalid Secondary Controller State

- NVME\_SC\_INVALID\_CTRL\_RESOURCES

  Invalid Number of Controller Resources

- NVME\_SC\_INVALID\_RESOURCE\_ID

  Invalid Resource Identifier

- NVME\_SC\_PMR\_SAN\_PROHIBITED

  Sanitize Prohibited While Persistent Memory Region is Enabled

- NVME\_SC\_ANA\_GROUP\_ID\_INVALID

  ANA Group Identifier Invalid: The specified ANA Group Identifier (ANAGRPID) is not supported in the submitted command.

- NVME\_SC\_ANA\_ATTACH\_FAILED

  ANA Attach Failed: The controller is not attached to the namespace as a result of an ANA condition.

- NVME\_SC\_INSUFFICIENT\_CAP

  Insufficient Capacity: Requested operation requires more free space than is currently available.

- NVME\_SC\_NS\_ATTACHMENT\_LIMIT\_EXCEEDED

  Namespace Attachment Limit Exceeded: Attaching the ns to a controller causes max number of ns attachments allowed to be exceeded.

- NVME\_SC\_PROHIBIT\_CMD\_EXEC\_NOT\_SUPPORTED

  Prohibition of Command Execution Not Supported

- NVME\_SC\_IOCS\_NOT\_SUPPORTED

  I/O Command Set Not Supported

- NVME\_SC\_IOCS\_NOT\_ENABLED

  I/O Command Set Not Enabled

- NVME\_SC\_IOCS\_COMBINATION\_REJECTED

  I/O Command Set Combination Rejected

- NVME\_SC\_INVALID\_IOCS

  Invalid I/O Command Set

- NVME\_SC\_ID\_UNAVAILABLE

  Identifier Unavailable

- NVME\_SC\_INVALID\_DISCOVERY\_INFO

  The discovery information provided in one or more extended discovery information entries is not applicable for the type of entity selected in the Entity Type (ETYPE) field of the Discovery Information Management command data portion’s header.

- NVME\_SC\_ZONING\_DATA\_STRUCT\_LOCKED

  The requested Zoning data structure is locked on the CDC.

- NVME\_SC\_ZONING\_DATA\_STRUCT\_NOTFND

  The requested Zoning data structure does not exist on the CDC.

- NVME\_SC\_INSUFFICIENT\_DISC\_RES

  The number of discover information entries provided in the data portion of the Discovery Information Management command for a registration task (i.e., TAS field cleared to 0h) exceeds the available capacity for new discovery information entries on the CDC or DDC. This may be a transient condition.

- NVME\_SC\_REQSTD\_FUNCTION\_DISABLED

  Fabric Zoning is not enabled on the CDC

- NVME\_SC\_ZONEGRP\_ORIGINATOR\_INVLD

  The NQN contained in the ZoneGroup Originator field does not match the Host NQN used by the DDC to connect to the CDC.

- NVME\_SC\_INVALID\_CONTROLER\_DATA\_QUEUE

  This error indicates that the specified Controller Data Queue Identifier is invalid for the controller processing the command.

- NVME\_SC\_NOT\_ENOUGH\_RESOURCES

  This error indicates that there is not enough resources in the controller to process the command.

- NVME\_SC\_CONTROLLER\_SUSPENDED

  The operation requested is not allowed if the specified controller is suspended.

- NVME\_SC\_CONTROLLER\_NOT\_SUSPENDED

  The operation requested is not allowed if the specified controller is not suspended.

- NVME\_SC\_CONTROLLER\_DATA\_QUEUE\_FULL

  The controller detected that a Controller Data Queue became full.

- NVME\_SC\_BAD\_ATTRIBUTES

  Conflicting Dataset Management Attributes

- NVME\_SC\_INVALID\_PI

  Invalid Protection Information

- NVME\_SC\_READ\_ONLY

  Attempted Write to Read Only Range

- NVME\_SC\_CMD\_SIZE\_LIMIT\_EXCEEDED

  Command Size Limit Exceeded

- NVME\_SC\_INCOMPATIBLE\_NS

  Incompatible Namespace or Format: At least one source namespace and the destination namespace have incompatible formats.

- NVME\_SC\_FAST\_COPY\_NOT\_POSSIBLE

  Fast Copy Not Possible: The Fast Copy Only (FCO) bit was set to ‘1’ in a Source Range entry and the controller was not able to use fast copy operations to copy the specified data.

- NVME\_SC\_OVERLAPPING\_IO\_RANGE

  Overlapping I/O Range: A source logical block range overlaps the destination logical block range.

- NVME\_SC\_INSUFFICIENT\_RESOURCES

  Insufficient Resources: A resource shortage prevented the controller from performing the requested copy.

- NVME\_SC\_CONNECT\_FORMAT

  Incompatible Format: The NVM subsystem does not support the record format specified by the host.

- NVME\_SC\_CONNECT\_CTRL\_BUSY

  Controller Busy: The controller is already associated with a host.

- NVME\_SC\_CONNECT\_INVALID\_PARAM

  Connect Invalid Parameters: One or more of the command parameters.

- NVME\_SC\_CONNECT\_RESTART\_DISC

  Connect Restart Discovery: The NVM subsystem requested is not available.

- NVME\_SC\_CONNECT\_INVALID\_HOST

  Connect Invalid Host: The host is either not allowed to establish an association to any controller in the NVM subsystem or the host is not allowed to establish an association to the specified controller

- NVME\_SC\_DISCONNECT\_INVALID\_QTYPE

  Invalid Queue Type: The command was sent on the wrong queue type.

- NVME\_SC\_DISCOVERY\_RESTART

  Discover Restart: The snapshot of the records is now invalid or out of date.

- NVME\_SC\_AUTH\_REQUIRED

  Authentication Required: NVMe in-band authentication is required and the queue has not yet been authenticated.

- NVME\_SC\_ZNS\_INVALID\_OP\_REQUEST

  Invalid Zone Operation Request: The operation requested is invalid. This may be due to various conditions, including: attempting to allocate a ZRWA when a zone is not in the ZSE:Empty state; or invalid Flush Explicit ZRWA Range Send Zone Action operation.

- NVME\_SC\_ZNS\_ZRWA\_RESOURCES\_UNAVAILABLE

  ZRWA Resources Unavailable: No ZRWAs are available.

- NVME\_SC\_ZNS\_BOUNDARY\_ERROR

  Zone Boundary Error: The command specifies logical blocks in more than one zone.

- NVME\_SC\_ZNS\_FULL

  Zone Is Full: The accessed zone is in the ZSF:Full state.

- NVME\_SC\_ZNS\_READ\_ONLY

  Zone Is Read Only: The accessed zone is in the ZSRO:Read Only state.

- NVME\_SC\_ZNS\_OFFLINE

  Zone Is Offline: The accessed zone is in the ZSO:Offline state.

- NVME\_SC\_ZNS\_INVALID\_WRITE

  Zone Invalid Write: The write to a zone was not at the write pointer.

- NVME\_SC\_ZNS\_TOO\_MANY\_ACTIVE

  Too Many Active Zones: The controller does not allow additional active zones.

- NVME\_SC\_ZNS\_TOO\_MANY\_OPENS

  Too Many Open Zones: The controller does not allow additional open zones.

- NVME\_SC\_ZNS\_INVAL\_TRANSITION

  Invalid Zone State Transition: The request is not a valid zone state transition.

- NVME\_SC\_WRITE\_FAULT

  Write Fault: The write data could not be committed to the media.

- NVME\_SC\_READ\_ERROR

  Unrecovered Read Error: The read data could not be recovered from the media.

- NVME\_SC\_GUARD\_CHECK

  End-to-end Guard Check Error: The command was aborted due to an end-to-end guard check failure.

- NVME\_SC\_APPTAG\_CHECK

  End-to-end Application Tag Check Error: The command was aborted due to an end-to-end application tag check failure.

- NVME\_SC\_REFTAG\_CHECK

  End-to-end Reference Tag Check Error: The command was aborted due to an end-to-end reference tag check failure.

- NVME\_SC\_COMPARE\_FAILED

  Compare Failure: The command failed due to a miscompare during a Compare command.

- NVME\_SC\_ACCESS\_DENIED

  Access Denied: Access to the namespace and/or LBA range is denied due to lack of access rights.

- NVME\_SC\_UNWRITTEN\_BLOCK

  Deallocated or Unwritten Logical Block: The command failed due to an attempt to read from or verify an LBA range containing a deallocated or unwritten logical block.

- NVME\_SC\_STORAGE\_TAG\_CHECK

  End-to-End Storage Tag Check Error: The command was aborted due to an end-to-end storage tag check failure.

- NVME\_SC\_ANA\_INTERNAL\_PATH\_ERROR

  Internal Path Error: The command was not completed as the result of a controller internal error that is specific to the controller processing the command.

- NVME\_SC\_ANA\_PERSISTENT\_LOSS

  Asymmetric Access Persistent Loss: The requested function (e.g., command) is not able to be performed as a result of the relationship between the controller and the namespace being in the ANA Persistent Loss state.

- NVME\_SC\_ANA\_INACCESSIBLE

  Asymmetric Access Inaccessible: The requested function (e.g., command) is not able to be performed as a result of the relationship between the controller and the namespace being in the ANA Inaccessible state.

- NVME\_SC\_ANA\_TRANSITION

  Asymmetric Access Transition: The requested function (e.g., command) is not able to be performed as a result of the relationship between the controller and the namespace transitioning between Asymmetric Namespace Access states.

- NVME\_SC\_CTRL\_PATH\_ERROR

  Controller Pathing Error: A pathing error was detected by the controller.

- NVME\_SC\_HOST\_PATH\_ERROR

  Host Pathing Error: A pathing error was detected by the host.

- NVME\_SC\_CMD\_ABORTED\_BY\_HOST

  Command Aborted By Host: The command was aborted as a result of host action.

- NVME\_SC\_CRD

  Mask to get value of Command Retry Delay index

- NVME\_SC\_MORE

  More bit. If set, more status information for this command as part of the Error Information log that may be retrieved with the Get Log Page command.

- NVME\_SC\_DNR

  Do Not Retry bit. If set, if the same command is re-submitted to any controller in the NVM subsystem, then that re-submitted command is expected to fail.
