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:
The initiator can take action based on just the K field which indicates if the error is minor or major. However all three fields are usually logically combined into a 20 bit field called Key Code Qualifier or KCQ. The specification for the target device will define the list of possible KCQ values. In practice there are many KCQ values which are common between different SCSI device types and different SCSI device vendors. Common values are listed below, you should consult your hardware specific documentation as well.

List of common SCSI KCQs

CategoryKeyASCASCQError Condition
No Sense00000 No error
No Sense05D00No sense - PFA threshold reached
Soft Error10100Recovered Write error - no index
Soft Error10200Recovered no seek completion
Soft Error10300Recovered Write error - write fault
Soft Error10900Track following error
Soft Error10B01Temperature warning
Soft Error10C01Recovered Write error with auto-realloc - reallocated
Soft Error10C03Recovered Write error - recommend reassign
Soft Error11201Recovered data without ECC using prev logical block ID
Soft Error11202Recovered data with ECC using prev logical block ID
Soft Error11401Recovered Record Not Found
Soft Error11600Recovered Write error - Data Sync Mark Error
Soft Error11601Recovered Write error - Data Sync Error - data rewritten
Soft Error11602Recovered Write error - Data Sync Error - recommend rewrite
Soft Error11603Recovered Write error - Data Sync Error - data auto-reallocated
Soft Error11604Recovered Write error - Data Sync Error - recommend reassignment
Soft Error11700Recovered data with no error correction applied
Soft Error11701Recovered Read error - with retries
Soft Error11702Recovered data using positive offset
Soft Error11703Recovered data using negative offset
Soft Error11705Recovered data using previous logical block ID
Soft Error11706Recovered Read error - without ECC, auto reallocated
Soft Error11707Recovered Read error - without ECC, recommend reassign
Soft Error11708Recovered Read error - without ECC, recommend rewrite
Soft Error11709Recovered Read error - without ECC, data rewritten
Soft Error11800Recovered Read error - with ECC
Soft Error11801Recovered data with ECC and retries
Soft Error11802Recovered Read error - with ECC, auto reallocated
Soft Error11805Recovered Read error - with ECC, recommend reassign
Soft Error11806Recovered data using ECC and offsets
Soft Error11807Recovered Read error - with ECC, data rewritten
Soft Error11C00Defect List not found
Soft Error11C01Primary defect list not found
Soft Error11C02Grown defect list not found
Soft Error11F00Partial defect list transferred
Soft Error14400Internal target failure
Soft Error15D00PFA threshold reached
Not Ready20400Not Ready - Cause not reportable.
Not Ready20401Not Ready - becoming ready
Not Ready20402Not Ready - need initialise command
Not Ready20403Not Ready - manual intervention required
Not Ready20404Not Ready - format in progress
Not Ready20409Not Ready - self-test in progress
Not Ready23100Not Ready - medium format corrupted
Not Ready23101Not Ready - format command failed
Not Ready23502Not Ready - enclosure services unavailable
Not Ready23A00Not Ready - medium not present
Not Ready23A01Not Ready - medium not present - tray closed
Not Ready23A02Not Ready - medium not present - tray open
Not Ready23A03Not Ready - medium not present - loadable
Not Ready23A04Not Ready - medium not present - medium auxiliary memory accessible
Not Ready24C00Diagnostic Failure - config not loaded
Medium Error30200Medium Error - No Seek Complete
Medium Error30300Medium Error - write fault
Medium Error31000Medium Error - ID CRC error
Medium Error31100Medium Error - unrecovered read error
Medium Error31101Medium Error - read retries exhausted
Medium Error31102Medium Error - error too long to correct
Medium Error31104Medium Error - unrecovered read error - auto re-alloc failed
Medium Error3110BMedium Error - unrecovered read error - recommend reassign
Medium Error31401Medium Error - record not found
Medium Error31600Medium Error - Data Sync Mark error
Medium Error31604Medium Error - Data Sync Error - recommend reassign
Medium Error31900Medium Error - defect list error
Medium Error31901Medium Error - defect list not available
Medium Error31902Medium Error - defect list error in primary list
Medium Error31903Medium Error - defect list error in grown list
Medium Error3190EMedium Error - fewer than 50% defect list copies
Medium Error33100Medium Error - medium format corrupted
Medium Error33101Medium Error - format command failed
Hardware Error40100Hardware Error - no index or sector
Hardware Error40200Hardware Error - no seek complete
Hardware Error40300Hardware Error - write fault
Hardware Error40900Hardware Error - track following error
Hardware Error41100Hardware Error - unrecovered read error in reserved area
Hardware Error41501Hardware Error - Mechanical positioning error
Hardware Error41600Hardware Error - Data Sync Mark error in reserved area
Hardware Error41900Hardware Error - defect list error
Hardware Error41902Hardware Error - defect list error in Primary List
Hardware Error41903Hardware Error - defect list error in Grown List
Hardware Error43200Hardware Error - no defect spare available
Hardware Error43500Hardware Error - enclosure services failure
Hardware Error43501Hardware Error - unsupported enclosure function
Hardware Error43502Hardware Error - enclosure services unavailable
Hardware Error43503Hardware Error - enclosure services transfer failure
Hardware Error43504Hardware Error - enclosure services refused
Hardware Error43505Hardware Error - enclosure services checksum error
Hardware Error43E00Hardware Error - logical unit has not self configured yet
Hardware Error43E01Hardware Error - logical unit failed
Hardware Error43E02Hardware Error - timeout on logical unit
Hardware Error43E03Hardware Error - self-test failed
Hardware Error43E04Hardware Error - unable to update self-test log
Hardware Error44400Hardware Error - internal target failure
Illegal Request51A00Illegal Request - parm list length error
Illegal Request52000Illegal Request - invalid/unsupported command code
Illegal Request52100Illegal Request - LBA out of range
Illegal Request52400Illegal Request - invalid field in CDB
Illegal Request52500Illegal Request - invalid LUN
Illegal Request52600Illegal Request - invalid fields in parm list
Illegal Request52601Illegal Request - parameter not supported
Illegal Request52602Illegal Request - invalid parm value
Illegal Request52603Illegal Request - invalid field parameter - threshold parameter
Illegal Request52604Illegal Request - invalid release of persistent reservation
Illegal Request52C00Illegal Request - command sequence error
Illegal Request53501Illegal Request - unsupported enclosure function
Illegal Request54900Illegal Request - invalid message
Illegal Request55300Illegal Request - media load or eject failed
Illegal Request55301Illegal Request - unload tape failure
Illegal Request55302Illegal Request - medium removal prevented
Illegal Request55500Illegal Request - system resource failure
Illegal Request55501Illegal Request - system buffer full
Illegal Request55504Illegal Request - Insufficient Registration Resources
Unit Attention62800Unit Attention - not-ready to ready transition
Unit Attention62900Unit Attention - POR or device reset occurred
Unit Attention62901Unit Attention - POR occurred
Unit Attention62902Unit Attention - SCSI bus reset occurred
Unit Attention62903Unit Attention - TARGET RESET occurred
Unit Attention62904Unit Attention - self-initiated-reset occurred
Unit Attention62905Unit Attention - transceiver mode change to SE
Unit Attention62906Unit Attention - transceiver mode change to LVD
Unit Attention62A00Unit Attention - parameters changed
Unit Attention62A01Unit Attention - mode parameters changed
Unit Attention62A02Unit Attention - log select parms changed
Unit Attention62A03Unit Attention - Reservations pre-empted
Unit Attention62A04Unit Attention - Reservations released
Unit Attention62A05Unit Attention - Registrations pre-empted
Unit Attention62F00Unit Attention - commands cleared by another initiator
Unit Attention63F00Unit Attention - target operating conditions have changed
Unit Attention63F01Unit Attention - microcode changed
Unit Attention63F02Unit Attention - changed operating definition
Unit Attention63F03Unit Attention - inquiry parameters changed
Unit Attention63F04Unit Attention - component device attached
Unit Attention63F05Unit Attention - device identifier changed
Unit Attention63F06Unit Attention - redundancy group created or modified
Unit Attention63F07Unit Attention - redundancy group deleted
Unit Attention63F08Unit Attention - spare created or modified
Unit Attention63F09Unit Attention - spare deleted
Unit Attention63F0AUnit Attention - volume set created or modified
Unit Attention63F0BUnit Attention - volume set deleted
Unit Attention63F0CUnit Attention - volume set deassigned
Unit Attention63F0DUnit Attention - volume set reassigned
Unit Attention63F0EUnit Attention - reported LUNs data has changed
Unit Attention63F0FUnit Attention - echo buffer overwritten
Unit Attention63F10Unit Attention - medium loadable
Unit Attention63F11Unit Attention - medium auxiliary memory accessible
Unit Attention63F12Unit Attention - iSCSI IP address added
Unit Attention63F13Unit Attention - iSCSI IP address removed
Unit Attention63F14Unit Attention - iSCSI IP address changed
Unit Attention63F15Unit Attention - inspect referrals sense descriptors
Unit Attention63F16Unit Attention - microcode has been changed without reset
Unit Attention63F17Unit Attention - zone transition to full
Unit Attention63F18Unit Attention - bind completed
Unit Attention63F19Unit Attention - bind redirected
Unit Attention63F1AUnit Attention - subsidiary binding changed
Unit Attention65D00Unit Attention - PFA threshold reached
Data Protect72002Access Denied - No Access Rights
Data Protect72700Write Protect - command not allowed
Aborted CommandB0000Aborted Command - no additional sense code
Aborted CommandB1B00Aborted Command - sync data transfer error
Aborted CommandB2500Aborted Command - unsupported LUN
Aborted CommandB3F0FAborted Command - echo buffer overwritten
Aborted CommandB4300Aborted Command - message reject error
Aborted CommandB4400Aborted Command - internal target failure
Aborted CommandB4500Aborted Command - Selection/Reselection failure
Aborted CommandB4700Aborted Command - SCSI parity error
Aborted CommandB4800Aborted Command - initiator-detected error message received
Aborted CommandB4900Aborted Command - inappropriate/illegal message
Aborted CommandB5503Aborted Command - insufficient resources
Aborted CommandB4B00Aborted Command - data phase error
Aborted CommandB4E00Aborted Command - overlapped commands attempted
Aborted CommandB4F00Aborted Command - due to loop initialisation
OtherE1D00Miscompare - during verify byte check operation
Otherx0500Illegal request
Otherx0600Unit attention
Otherx0700Data protect
Otherx0800LUN communication failure
Otherx0801LUN communication timeout
Otherx0802LUN communication parity error
Otherx0803LUN communication CRC error
Otherx0900vendor specific sense key
Otherx0901servo fault
Otherx0904head select fault
Otherx0A00error log overflow
Otherx0B00aborted command
Otherx0C00write error
Otherx0C02write error - auto-realloc failed
Otherx0E00data miscompare
Otherx1200address mark not found for ID field
Otherx1400logical block not found
Otherx1500random positioning error
Otherx1501mechanical positioning error
Otherx1502positioning error detected by read of medium
Otherx2700write protected
Otherx2900POR or bus reset occurred
Otherx3101format failed
Otherx3201defect list update error
Otherx3202no spares available
Otherx3501unspecified enclosure services failure
Otherx3700parameter rounded
Otherx3D00invalid bits in identify message
Otherx3E00LUN not self-configured yet
Otherx4001DRAM parity error
Otherx4002DRAM parity error
Otherx4200power-on or self-test failure
Otherx4C00LUN failed self-configuration
Otherx5C00RPL status change
Otherx5C01spindles synchronised
Otherx5C02spindles not synchronised
Otherx6500voltage fault
Otherx≥80xVendor specific
Otherxx≥80Vendor specific