Kerberos Error Codes

CodeCode NameDescriptionPossible causes
0x0KDC_ERR_NONENo errorNo errors were found
0x1KDC_ERR_NAME_EXPClient’s entry in KDC database has expiredNo information
0x2KDC_ERR_SERVICE_EXPServer’s entry in KDC database has expiredNo information
0x3KDC_ERR_BAD_PVNORequested Kerberos version number not supportedNo information
0x4KDC_ERR_C_OLD_MAST_KVNOClient’s key encrypted in old master keyNo information
0x5KDC_ERR_S_OLD_MAST_KVNOServer’s key encrypted in old master keyNo information
0x6KDC_ERR_C_PRINCIPAL_UNKNOWNClient not found in Kerberos databaseThe username doesn’t exist.
0x7KDC_ERR_S_PRINCIPAL_UNKNOWNServer not found in Kerberos databaseThis error can occur if the domain controller can’t find the server’s name in Active Directory. This error is similar to KDC_ERR_C_PRINCIPAL_UNKNOWN except that it occurs when the server name can’t be found.
0x8KDC_ERR_PRINCIPAL_NOT_UNIQUEMultiple principal entries in KDC databaseThis error occurs if duplicate principal names exist. Unique principal names are crucial for ensuring mutual authentication. Thus, duplicate principal names are strictly forbidden, even across multiple realms. Without unique principal names, the client has no way of ensuring that the server it is communicating with is the correct one.
0x9KDC_ERR_NULL_KEYThe client or server has a null key (master key)No master key was found for client or server. Usually it means that administrator should reset the password on the account.
0xAKDC_ERR_CANNOT_POSTDATETicket (TGT) not eligible for postdatingThis error can occur if a client requests postdating of a Kerberos ticket. Postdating is the act of requesting that a ticket’s start time be set into the future.
It also can occur if there is a time difference between the client and the KDC.
0xBKDC_ERR_NEVER_VALIDRequested start time is later than end timeThere’s a time difference between the KDC and the client.
0xCKDC_ERR_POLICYRequested start time is later than end timeThis error is usually the result of logon restrictions in place on a user’s account. For example workstation restriction, smart card authentication requirement or logon time restriction.
0xDKDC_ERR_BADOPTIONKDC cannot accommodate requested optionImpending expiration of a TGT.
The SPN to which the client is attempting to delegate credentials isn’t in its Allowed-to-delegate-to list
0xEKDC_ERR_ETYPE_NOTSUPPKDC has no support for encryption typeIn general, this error occurs when the KDC or a client receives a packet that it can’t decrypt.
0xFKDC_ERR_SUMTYPE_NOSUPPKDC has no support for checksum typeThe KDC, server, or client receives a packet for which it doesn’t have a key of the appropriate encryption type. The result is that the computer is unable to decrypt the ticket.
0x10KDC_ERR_PADATA_TYPE_NOSUPPKDC has no support for PADATA type (pre-authentication data)Smart card logon is being attempted and the proper certificate can’t be located. This can happen because the wrong certification authority (CA) is being queried or the proper CA can’t be contacted.
It can also happen when a domain controller doesn’t have a certificate installed for smart cards (Domain Controller or Domain Controller Authentication templates).
This error code can’t occur in event 4768. A Kerberos authentication ticket (TGT) was requested”. It occurs in 4771. Kerberos pre-authentication failed” event.
0x11KDC_ERR_TRTYPE_NO_SUPPKDC has no support for transited typeNo information.
0x12KDC_ERR_CLIENT_REVOKEDClient’s credentials have been revokedThis might be because of an explicit disabling or because of other restrictions in place on the account. For example: account disabled, expired, or locked out.
0x13KDC_ERR_SERVICE_REVOKEDCredentials for server have been revokedNo information.
0x14KDC_ERR_TGT_REVOKEDTGT has been revokedSince the remote KDC may change its PKCROSS key while there are PKCROSS tickets still active, it SHOULD cache the old PKCROSS keys until the last issued PKCROSS ticket expires. Otherwise, the remote KDC will respond to a client with a KRB-ERROR message of type KDC_ERR_TGT_REVOKED. See RFC1510 for more details.
0x15KDC_ERR_CLIENT_NOTYETClient not yet valid—try again laterNo information.
0x16KDC_ERR_SERVICE_NOTYETServer not yet valid—try again laterNo information.
0x17KDC_ERR_KEY_EXPIREDPassword has expired—change password to resetThe user’s password has expired.
This error code can’t occur in event “4768. A Kerberos authentication ticket (TGT) was requested”. It occurs in “4771. Kerberos pre-authentication failed” event.
0x18KDC_ERR_PREAUTH_FAILEDPre-authentication information was invalidThe wrong password was provided.
This error code can’t occur in event “4768. A Kerberos authentication ticket (TGT) was requested”. It occurs in “4771. Kerberos pre-authentication failed” event.
0x19KDC_ERR_PREAUTH_REQUIREDAdditional pre-authentication requiredThis error often occurs in UNIX interoperability scenarios. MIT-Kerberos clients don’t request pre-authentication when they send a KRB_AS_REQ message. If pre-authentication is required (the default), Windows systems will send this error. Most MIT-Kerberos clients will respond to this error by giving the pre-authentication, in which case the error can be ignored, but some clients might not respond in this way.
0x1AKDC_ERR_SERVER_NOMATCHKDC does not know about the requested serverNo information.
0x1BKDC_ERR_MUST_USE_USER2USERServer principal valid for user2user onlyThis error occurs because the service is missing an SPN.
0x1FKRB_AP_ERR_BAD_INTEGRITYIntegrity check on decrypted field failedThe authenticator was encrypted with something other than the session key. The result is that the client can’t decrypt the resulting message. The modification of the message could be the result of an attack or it could be because of network noise.
0x20KRB_AP_ERR_TKT_EXPIREDThe ticket has expiredThe smaller the value for the “Maximum lifetime for user ticket” Kerberos policy setting, the more likely it is that this error will occur. Because ticket renewal is automatic, you should not have to do anything if you get this message.
0x21KRB_AP_ERR_TKT_NYVThe ticket is not yet validThe ticket presented to the server isn’t yet valid (in relationship to the server time). The most probable cause is that the clocks on the KDC and the client aren’t synchronized.
If cross-realm Kerberos authentication is being attempted, then you should verify time synchronization between the KDC in the target realm and the KDC in the client realm, as well.
0x22KRB_AP_ERR_REPEATThe request is a replayThis error indicates that a specific authenticator showed up twice — the KDC has detected that this session ticket duplicates one that it has already received.
0x23KRB_AP_ERR_NOT_USThe ticket is not for usThe server has received a ticket that was meant for a different realm.
0x24KRB_AP_ERR_BADMATCHThe ticket and authenticator do not matchThe KRB_TGS_REQ is being sent to the wrong KDC.
There’s an account mismatch during protocol transition.
0x25KRB_AP_ERR_SKEWThe clock skew is too greatThis error is logged if a client computer sends a timestamp whose value differs from that of the server’s timestamp by more than the number of minutes found in the “Maximum tolerance for computer clock synchronization” setting in Kerberos policy.
0x26KRB_AP_ERR_BADADDRNetwork address in network layer header doesn’t match address inside ticketSession tickets MAY include the addresses from which they are valid. This error can occur if the address of the computer sending the ticket is different from the valid address in the ticket. A possible cause of this could be an Internet Protocol (IP) address change. Another possible cause is when a ticket is passed through a proxy server or NAT. The client is unaware of the address scheme used by the proxy server, so unless the program caused the client to request a proxy server ticket with the proxy server’s source address, the ticket could be invalid
0x27KRB_AP_ERR_BADVERSIONProtocol version numbers don’t match (PVNO)When an application receives a KRB_SAFE message, it verifies it. If any error occurs, an error code is reported for use by the application.
The message is first checked by verifying that the protocol version and type fields match the current version and KRB_SAFE, respectively. A mismatch generates a KRB_AP_ERR_BADVERSION.
See RFC4120 for more details.
0x28KRB_AP_ERR_MSG_TYPEMessage type is unsupportedThis message is generated when target server finds that message format is wrong. This applies to KRB_AP_REQ, KRB_SAFE, KRB_PRIV and KRB_CRED messages.
This error also generated if use of UDP protocol is being attempted with User-to-User authentication.
0x29KRB_AP_ERR_MODIFIEDMessage stream modified and checksum didn’t matchThe authentication data was encrypted with the wrong key for the intended server.
The authentication data was modified in transit by a hardware or software error, or by an attacker.
The client sent the authentication data to the wrong server because incorrect DNS data caused the client to send the request to the wrong server.
The client sent the authentication data to the wrong server because DNS data was out-of-date on the client.
0x2AKRB_AP_ERR_BADORDERMessage out of order (possible tampering)This event generates for KRB_SAFE and KRB_PRIV messages if an incorrect sequence number is included, or if a sequence number is expected but not present. See RFC4120 for more details.
0x2CKRB_AP_ERR_BADKEYVERSpecified version of key is not availableThis error might be generated on server side during receipt of invalid KRB_AP_REQ message. If the key version indicated by the Ticket in the KRB_AP_REQ isn’t one the server can use (e.g., it indicates an old key, and the server no longer possesses a copy of the old key), the KRB_AP_ERR_BADKEYVER error is returned.
0x2DKRB_AP_ERR_NOKEYService key not availableThis error might be generated on server side during receipt of invalid KRB_AP_REQ message. Because it is possible for the server to be registered in multiple realms, with different keys in each, the realm field in the unencrypted portion of the ticket in the KRB_AP_REQ is used to specify which secret key the server should use to decrypt that ticket. The KRB_AP_ERR_NOKEY error code is returned if the server doesn’t have the proper key to decipher the ticket.
0x2EKRB_AP_ERR_MUT_FAILMutual authentication failedNo information.
0x2FKRB_AP_ERR_BADDIRECTIONIncorrect message directionNo information.
0x31KRB_AP_ERR_BADSEQIncorrect sequence number in messageNo information.
0x32KRB_AP_ERR_INAPP_CKSUMInappropriate type of checksum in message (checksum may be unsupported)When KDC receives KRB_TGS_REQ message it decrypts it, and after the user-supplied checksum in the Authenticator MUST be verified against the contents of the request, and the message MUST be rejected if the checksums don’t match (with an error code of KRB_AP_ERR_MODIFIED) or if the checksum isn’t collision-proof (with an error code of KRB_AP_ERR_INAPP_CKSUM).
0x33KRB_AP_PATH_NOT_ACCEPTEDDesired path is unreachableNo information.
0x34KRB_ERR_RESPONSE_TOO_BIGToo much dataThe size of a ticket is too large to be transmitted reliably via UDP. In a Windows environment, this message is purely informational. A computer running a Windows operating system will automatically try TCP if UDP fails.
0x3CKRB_ERR_GENERICGeneric errorGroup membership has overloaded the PAC.
Multiple recent password changes haven’t propagated.
Crypto subsystem error caused by running out of memory.
SPN too long.
SPN has too many parts.
0x3DKRB_ERR_FIELD_TOOLONGField is too long for this implementationEach request (KRB_KDC_REQ) and response (KRB_KDC_REP or KRB_ERROR) sent over the TCP stream is preceded by the length of the request as 4 octets in network byte order. The high bit of the length is reserved for future expansion and MUST currently be set to zero. If a KDC that doesn’t understand how to interpret a set high bit of the length encoding receives a request with the high order bit of the length set, it MUST return a KRB-ERROR message with the error KRB_ERR_FIELD_TOOLONG and MUST close the TCP stream.
0x3EKDC_ERR_CLIENT_NOT_TRUSTEDThe client trust failed or is not implementedThis typically happens when user’s smart-card certificate is revoked or the root Certification Authority that issued the smart card certificate (in a chain) isn’t trusted by the domain controller.
0x3FKDC_ERR_KDC_NOT_TRUSTED
The KDC server trust failed or could not be verified
The trustedCertifiers field contains a list of certification authorities trusted by the client, in the case that the client doesn’t possess the KDC’s public key certificate. If the KDC has no certificate signed by any of the trustedCertifiers, then it returns an error of type KDC_ERR_KDC_NOT_TRUSTED. See RFC1510 for more details.
0x40KDC_ERR_INVALID_SIGThe signature is invalidThis error is related to PKINIT. If a PKI trust relationship exists, the KDC then verifies the client’s signature on AuthPack (TGT request signature). If that fails, the KDC returns an error message of type KDC_ERR_INVALID_SIG.
0x41KDC_ERR_KEY_TOO_WEAKA higher encryption level is neededIf the clientPublicValue field is filled in, indicating that the client wishes to use Diffie-Hellman key agreement, then the KDC checks to see that the parameters satisfy its policy. If they don’t (e.g., the prime size is insufficient for the expected encryption type), then the KDC sends back an error message of type KDC_ERR_KEY_TOO_WEAK.
0x42KRB_AP_ERR_USER_TO_USER_REQUIREDUser-to-user authorization is requiredIn the case that the client application doesn’t know that a service requires user-to-user authentication, and requests and receives a conventional KRB_AP_REP, the client will send the KRB_AP_REP request, and the server will respond with a KRB_ERROR token as described in RFC1964, with a msg-type of KRB_AP_ERR_USER_TO_USER_REQUIRED.
0x43KRB_AP_ERR_NO_TGTNo TGT was presented or availableIn user-to-user authentication if the service doesn’t possess a ticket granting ticket, it should return the error KRB_AP_ERR_NO_TGT.
0x44KDC_ERR_WRONG_REALMIncorrect domain or principalAlthough this error rarely occurs, it occurs when a client presents a cross-realm TGT to a realm other than the one specified in the TGT. Typically, this results from incorrectly configured DNS.
Kerberos Error Codes