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