SCSI Sense Codes

  1. a command is issued
  2. a command completes
  3. if command completes with a CHECK CONDITION status:
  4. sense data is returned in the same I_T_L_Q nexus transaction as CHECK CONDITION
  5. after sense data is returned, it is usually cleared, except:
  6. it is associated with a unit attention condition AND
  7. UA_INTLCK_CTRL field contains either 10b or 11b

Steps to decoding sense data:

  1. check the sense key. this provides basic information about the error
  2. check the additional sense length. this tells how many more bytes of info
  3. check asc & ascq. this provides detailed info about the error
  4. check SKSV bit (sense key specific valid). 1 (set) = there is more detail in bytes 15 - 17

Sense Codes

Sense Key Name Description
0h No Sense Indicates there is no specific Sense Key information to be reported for the disc drive. This would be the case for a successful command or when the ILI bit is one.
1h Recovered Error Indicates the last command completed successfully with some recovery action performed by the disc drive. When multiple recovered errors occur, the last error that occurred is reported by the additional sense bytes. Note: For some Mode settings, the last command may have terminated before completing.
2h Not Ready Indicates the logical unit addressed cannot be accessed. Operator intervention may be required to correct this condition.
3h Medium Error Indicates the command terminated with a non-recovered error condition, probably caused by a flaw in the medium or an error in the recorded data.
4h Hardware Error Indicates the disc drive detected a nonrecoverable hardware failure while performing the command or during a self test. This includes SCSI interface parity error, controller failure or device failure.
5h Illegal Request Indicates an illegal parameter in the command descriptor block or in the additional parameters supplied as data for some commands (Format Unit, Mode Select, and so forth). If the disc drive detects an invalid parameter in the Command Descriptor Block, it shall terminate the command without altering the medium. If the disc drive detects an invalid parameter in the additional parameters supplied as data, the disc drive may have already altered the medium. This sense key may also indicate that an invalid IDENTIFY message was received. This could also indicate an attempt to write past the last logical block.
6h Unit Attention Indicates the disc drive may have been reset.
7h Data Protect Indicates that a command that reads or writes the medium was attempted on a block that is protected from this operation. The read or write operation is not performed.
9h Firmware Error Vendor specific sense key.
Bh Aborted Command Indicates the disc drive aborted the command. The initiator may be able to recover by trying the command again.
Ch Equal Indicates a SEARCH DATA command has satisfied an equal comparison.
Dh Volume Overflow Indicates a buffered peripheral device has reached the end of medium partition and data remains in the buffer that has not been written to the medium.
Eh Miscompare Indicates that the source data did not match the data read from the medium.

 

ASC and ASCQ Codes

Category Key ASC ASCQ Error Condition
No Sense 0 00 00 No error
0 5D 00 No sense - PFA threshold reached
Soft Error 1 01 00 Recovered Write error - no index
1 02 00 Recovered no seek completion
1 03 00 Recovered Write error - write fault
1 09 00 Track following error
1 0B 01 Temperature warning
1 0C 01 Recovered Write error with auto-realloc - reallocated
1 0C 03 Recovered Write error - recommend reassign
1 12 01 Recovered data without ECC using prev logical block ID
1 12 02 Recovered data with ECC using prev logical block ID
1 14 01 Recovered Record Not Found
1 16 00 Recovered Write error - Data Sync Mark Error
1 16 01 Recovered Write error - Data Sync Error - data rewritten
1 16 02 Recovered Write error - Data Sync Error - recommend rewrite
1 16 03 Recovered Write error - Data Sync Error - data auto-reallocated
1 16 04 Recovered Write error - Data Sync Error - recommend reassignment
1 17 00 Recovered data with no error correction applied
1 17 01 Recovered Read error - with retries
1 17 02 Recovered data using positive offset
1 17 03 Recovered data using negative offset
1 17 05 Recovered data using previous logical block ID
1 17 06 Recovered Read error - without ECC, auto reallocated
1 17 07 Recovered Read error - without ECC, recommend reassign
1 17 08 Recovered Read error - without ECC, recommend rewrite
1 17 09 Recovered Read error - without ECC, data rewritten
1 18 00 Recovered Read error - with ECC
1 18 01 Recovered data with ECC and retries
1 18 02 Recovered Read error - with ECC, auto reallocated
1 18 05 Recovered Read error - with ECC, recommend reassign
1 18 06 Recovered data using ECC and offsets
1 18 07 Recovered Read error - with ECC, data rewritten
1 1C 00 Defect List not found
1 1C 01 Primary defect list not found
1 1C 02 Grown defect list not found
1 1F 00 Partial defect list transferred
1 44 00 Internal target failure
1 5D 00 PFA threshold reached
Not Ready 2 04 00 Not Ready - Cause not reportable.
2 04 01 Not Ready - becoming ready
2 04 02 Not Ready - need initialise command (start unit)
2 04 03 Not Ready - manual intervention required
2 04 04 Not Ready - format in progress
2 04 09 Not Ready - self-test in progress
2 31 00 Not Ready - medium format corrupted
2 31 01 Not Ready - format command failed
2 35 02 Not Ready - enclosure services unavailable
2 3A 00 Not Ready - medium not present
2 3A 01 Not Ready - medium not present - tray closed
2 3A 02 Not Ready - medium not present - tray open
2 4C 00 Diagnostic Failure - config not loaded
Medium Error 3 02 00 Medium Error - No Seek Complete
3 03 00 Medium Error - write fault
3 10 00 Medium Error - ID CRC error
3 11 00 Medium Error - unrecovered read error
3 11 01 Medium Error - read retries exhausted
3 11 02 Medium Error - error too long to correct
3 11 04 Medium Error - unrecovered read error - auto re-alloc failed
3 11 0B Medium Error - unrecovered read error - recommend reassign
3 14 01 Medium Error - record not found
3 16 00 Medium Error - Data Sync Mark error
3 16 04 Medium Error - Data Sync Error - recommend reassign
3 19 00 Medium Error - defect list error
3 19 01 Medium Error - defect list not available
3 19 02 Medium Error - defect list error in primary list
3 19 03 Medium Error - defect list error in grown list
3 19 0E Medium Error - fewer than 50% defect list copies
3 31 00 Medium Error - medium format corrupted
3 31 01 Medium Error - format command failed
Hardware Error 4 01 00 Hardware Error - no index or sector
4 02 00 Hardware Error - no seek complete
4 03 00 Hardware Error - write fault
4 09 00 Hardware Error - track following error
4 11 00 Hardware Error - unrecovered read error in reserved area
4 15 01 Hardware Error - Mechanical positioning error
4 16 00 Hardware Error - Data Sync Mark error in reserved area
4 19 00 Hardware Error - defect list error
4 19 02 Hardware Error - defect list error in Primary List
4 19 03 Hardware Error - defect list error in Grown List
4 31 00 Hardware Error - reassign failed
4 32 00 Hardware Error - no defect spare available
4 35 01 Hardware Error - unsupported enclosure function
4 35 02 Hardware Error - enclosure services unavailable
4 35 03 Hardware Error - enclosure services transfer failure
4 35 04 Hardware Error - enclosure services refused
4 35 05 Hardware Error - enclosure services checksum error
4 3E 03 Hardware Error - self-test failed
4 3E 04 Hardware Error - unable to update self-test
4 44 00 Hardware Error - internal target failure
Illegal Request 5 1A 00 Illegal Request - parm list length error
5 20 00 Illegal Request - invalid/unsupported command code
5 21 00 Illegal Request - LBA out of range
5 24 00 Illegal Request - invalid field in CDB (Command Descriptor Block)
5 25 00 Illegal Request - invalid LUN
5 26 00 Illegal Request - invalid fields in parm list
5 26 01 Illegal Request - parameter not supported
5 26 02 Illegal Request - invalid parm value
5 26 03 Illegal Request - invalid field parameter - threshold parameter
5 26 04 Illegal Request - invalid release of persistent reservation
5 2C 00 Illegal Request - command sequence error
5 35 01 Illegal Request - unsupported enclosure function
5 49 00 Illegal Request - invalid message
5 53 00 Illegal Request - media load or eject failed
5 53 01 Illegal Request - unload tape failure
5 53 02 Illegal Request - medium removal prevented
5 55 00 Illegal Request - system resource failure
5 55 01 Illegal Request - system buffer full
5 55 04 Illegal Request - Insufficient Registration Resources
Unit Attention 6 28 00 Unit Attention - not-ready to ready transition (format complete)
6 29 00 Unit Attention - POR or device reset occurred
6 29 01 Unit Attention - POR occurred
6 29 02 Unit Attention - SCSI bus reset occurred
6 29 03 Unit Attention - TARGET RESET occurred
6 29 04 Unit Attention - self-initiated-reset occurred
6 29 05 Unit Attention - transceiver mode change to SE
6 29 06 Unit Attention - transceiver mode change to LVD
6 2A 00 Unit Attention - parameters changed
6 2A 01 Unit Attention - mode parameters changed
6 2A 02 Unit Attention - log select parms changed
6 2A 03 Unit Attention - Reservations pre-empted
6 2A 04 Unit Attention - Reservations released
6 2A 05 Unit Attention - Registrations pre-empted
6 2F 00 Unit Attention - commands cleared by another initiator
6 3F 00 Unit Attention - target operating conditions have changed
6 3F 01 Unit Attention - microcode changed
6 3F 02 Unit Attention - changed operating definition
6 3F 03 Unit Attention - inquiry parameters changed
6 3F 05 Unit Attention - device identifier changed
6 5D 00 Unit Attention - PFA threshold reached
Write Protect 7 27 00 Write Protect - command not allowed
Aborted Command B 00 00 Aborted Command - no additional sense code
B 1B 00 Aborted Command - sync data transfer error (extra ACK)
B 25 00 Aborted Command - unsupported LUN
B 3F 0F Aborted Command - echo buffer overwritten
B 43 00 Aborted Command - message reject error
B 44 00 Aborted Command - internal target failure
B 45 00 Aborted Command - Selection/Reselection failure
B 47 00 Aborted Command - SCSI parity error
B 48 00 Aborted Command - initiator-detected error message received
B 49 00 Aborted Command - inappropriate/illegal message
B 4B 00 Aborted Command - data phase error
B 4E 00 Aborted Command - overlapped commands attempted
B 4F 00 Aborted Command - due to loop initialisation
Other E 1D 00 Miscompare - during verify byte check operation
x 05 00 Illegal request
x 06 00 Unit attention
x 07 00 Data protect
x 08 00 LUN communication failure
x 08 01 LUN communication timeout
x 08 02 LUN communication parity error
x 08 03 LUN communication CRC error
x 09 00 vendor specific sense key
x 09 01 servo fault
x 09 04 head select fault
x 0A 00 error log overflow
x 0B 00 aborted command
x 0C 00 write error
x 0C 02 write error - auto-realloc failed
x 0E 00 data miscompare
x 12 00 address mark not found for ID field
x 14 00 logical block not found
x 15 00 random positioning error
x 15 01 mechanical positioning error
x 15 02 positioning error detected by read of medium
x 27 00 write protected
x 29 00 POR or bus reset occurred
x 31 01 format failed
x 32 01 defect list update error
x 32 02 no spares available
x 35 01 unspecified enclosure services failure
x 37 00 parameter rounded
x 3D 00 invalid bits in identify message
x 3E 00 LUN not self-configured yet
x 40 01 DRAM parity error
x 40 02 DRAM parity error
x 42 00 power-on or self-test failure
x 4C 00 LUN failed self-configuration
x 5C 00 RPL status change
x 5C 01 spindles synchronised
x 5C 02 spindles not synchronised
x 65 00 voltage fault
x ≥80 x Vendor specific
x x ≥80 Vendor specific