Error Codes
This document provides a comprehensive reference for all error codes returned by the Arculus FIDO Server and mobile SDKs.
Response Format
All API responses follow a standard JSON format:
{
"status": "ok | failed | false",
"errorMessage": "Error description or empty string",
"statuscode": "HTTP status code (as string, optional)",
"responseCode": 200
}Note: The status field may be "ok" for success, "failed" for most errors, or "false" for session-related errors. The statuscode field (as a string) is included in error responses.
HTTP Status Codes
200
Success
Operation completed successfully
400
Bad Request
Invalid JSON or malformed request (see E* codes)
401
Unauthorized
Authentication failed (see E* codes)
403
Forbidden
No account for user (see E* codes)
408
Request Timeout
Session expired (see E* codes)
507
Insufficient Storage
Server unable to store data (see E* codes)
Card Error Codes (600-617)
These errors originate from the Arculus FIDO card during NFC communication:
600
Tag Lost
"Please hold your card steady and try again"
Retry - keep card still on device
601
Unknown Error
"An error occurred. Please try again"
Retry operation
602
No Credentials
"No credentials found. Please register first"
Complete registration flow
603
User Not Found
"User not found on card. Please register"
Register the card for this user
604
Signature Failed
"Card operation failed. Please try again"
Retry operation
605
Device Reset Failed
"Card reset failed. Please try again"
Retry reset operation
606
Keystore Full
"Card storage full. Remove unused credentials"
Delete old credentials from card
607
Transmit Failed
"Connection lost. Please try again"
Retry - ensure card is positioned correctly
608
Get PIN Token Failed
"Invalid PIN. Please check your PIN"
Verify PIN is correct
609
Get Public Key Failed
"PIN verification failed"
Verify PIN is correct
610
Applet Select Failed
"Unrecognized card. Use an Arculus FIDO card"
Use a valid Arculus FIDO2 card
611
Set PIN Failed
"Failed to set PIN. Please try again"
Retry with valid 6+ digit PIN
612
Change PIN Failed
"Failed to change PIN. Check your current PIN"
Verify old PIN is correct
613
Internal Crypto Error
"Card error. Please try again"
Retry operation
614
NFC Timeout
"Connection timed out. Hold card steady"
Retry - keep card on device longer
615
NFC Not Available
"NFC not available on this device"
Use a device with NFC support
616
Tag Lost (Card Moved)
"Card moved during operation. Try again"
Retry - hold card still
617
Transmit Error (Card Moved)
"Card moved during operation. Try again"
Retry - hold card still
Server Error Codes (E0xxx - E4xxx)
Request Validation Errors (E00xx)
E0000R
Date malformed
Invalid date format in request
E0001R
Date malformed
Invalid date format in request
E0002R
Type not supplied
Missing type field
E0003R
Type not string
type field is not a string
E0004R
Type not set to public-key
Invalid credential type
E0005R
id not supplied
Missing credential ID
E0006R
id is not base64url
Invalid ID encoding
E0007R
Signature is not base64url
Invalid signature encoding
E0008R
clientDataJSON is not base64url
Invalid client data encoding
E0009R
tokenBinding not supported
Token binding is deprecated
E0010R
response is not dict
Response must be a dictionary
E0011R
Type not supplied
Missing type in response
E0012R
Type not string
Type in response is not a string
E0013R
Type not set to public-key
Invalid type in response
E0014R
id not supplied
Missing ID in response
E0015R
id is not base64url
Invalid ID encoding in response
E0016R
authenticatorData missing
Missing authenticator data
E0017R
authenticatorData missing
Missing authenticator data
E0018R
authenticatorData is not base64url
Invalid authenticator data encoding
E0019R
Signature is not base64url
Invalid signature encoding
E0020R
clientDataJSON is not base64url
Invalid client data encoding
E0021R
clientDataJSON missing
Missing client data JSON
E0022R
tokenBinding not supported
Token binding is deprecated
E0023R
Invalid JSON due to keypair for deviceinfo
Malformed deviceinfo JSON
E0024R
Session expired
Registration/auth session timed out
E0025R
Unknown relying party / register failed / multitenant error
Relying party not found, registration failed, or multitenant configuration issue
E0026R
Server is unable to store / Invalid X-ArculusFido-RelyingParty header
Database storage failed or invalid header format
E0027R
Session expired
Session timed out
E0028R
Server is unable to store Authenticator increment count
Counter update failed
E0029R
authenticate failed
Authentication operation failed
Attestation Errors (E10xx)
E1000R
AAGUID must be 16 bytes
Invalid AAGUID length
E1001R
Wrong length
Invalid data length
E1002R
Wrong length
Invalid data length
E1003R
fmt fido-u2f AAGUID is 00000000-0000-0000-0000-000000000000
Invalid U2F AAGUID
E1004R
attStmt alg field missing
Missing algorithm field
E1005R
attStmt alg is not type number
Algorithm must be numeric
E1006R
attStmt sig field missing
Missing signature field
E1007R
attStmt sig is not bytes
Signature must be bytes
E1008R
attStmt sig is empty byte string
Empty signature
E1009R
ALG does not match metadata
Algorithm mismatch with metadata
E1010R
Attestation certificate must use version 3!
Certificate version error
E1011R
Attestation certificate must have CA=false!
Invalid certificate CA flag
E1012R
Attestation certificate must have Basic Constraints!
Missing basic constraints
E1013R
Chain Version V3 error
Certificate chain version error
E1014R
Chain Version V3 error
Certificate chain version error
E1015R
Invalid signature order
Wrong signature order
E1016R
x5c leaf certificate expired
Certificate has expired
E1017R
Attestation Signature for x5c is invalid
Invalid certificate signature
E1018R
Attestation certificate AAGUID must match authenticator data
AAGUID mismatch
E1019R
'id-fido-gen-ce-aaguid' extension must not be marked critical
Extension criticality error
E1020R
fido-u2f x5c is missing
Missing U2F certificate
E1021R
fido-u2f attStmt.x5c is not of type ARRAY
Certificate must be array
E1022R
fido-u2f x5c must be one certificate
Too many certificates (or x5c is missing)
E1023R
Fido_u2 public key is not Elliptic Curve (EC) public key over the P-256 curve
Invalid U2F public key type
E1024R
Fido_u2 public credentialPublicKey is not CBOR -7
Invalid U2F algorithm
E1025R
Attestation Signature for Fido_u2f is invalid
Invalid U2F signature
E1026R
Android att_stmt is missing
Missing Android attestation
E1027R
Android x5c is missing
Missing Android certificate
E1028R
Android sig is missing
Missing Android signature
E1029R
Android x5c is missing
Missing Android certificate
E1030R
Android attStmt.x5c is not of type ARRAY
Certificate must be array
E1031R
Android x5c is missing
Missing Android certificate
E1032R
Attestation Signature for Android is invalid
Invalid Android signature
E1033R
x5c certificate does not match credentialPublicKey
Key mismatch
E1034R
alg does not match credentialPublicKey
Algorithm mismatch with credential public key
E1035R
Packed self attestation SIGNATURE invalid
Invalid self-attestation
E1036R
MDS Entry not Found for AAGUID
Authenticator metadata not found
E1037R
MDS validation error
Metadata service validation failed (see error message)
E1038R
Invalid Attestation Payload. MDS Violation. x5c object present while BASIC_SURROGATE specified
Attestation format conflict with MDS
E1039R
'fmt' field is missing
Missing format field
E1040R
'fmt' format is unknown
Unknown attestation format
E1041R
'fmt' none and FULL packed
Format conflict
E1042R
'x5c' missing
Missing certificate chain
E1043R
attStmt.x5c is not of type ARRAY
Certificate must be array
E1044R
attStmt.x5c is an EMPTY ARRAY
Empty certificate chain
E1045R
AAGUID is None and NOT in Whitelist of AAGUIDs
Missing AAGUID and not whitelisted
E1046R
Whitelist is ON and yet no Whitelist of AAGUIDs exists
AAGUID whitelist enabled but empty
E1047R
AAGUID NOT in Whitelist of AAGUIDs
AAGUID not in whitelist
Verification Errors (E20xx)
E2000R
Custom challenge must be of type 'bytes'
Invalid challenge type
E2001R
Custom challenge length must be >= 16
Challenge too short
E2002R
Server has no allowed algorithms
No algorithms configured
E2003R
incorrect arguments passed to register_complete()
Invalid registration args
E2004R
Incorrect type in CollectedClientData
Invalid client data type
E2005R
Invalid origin in CollectedClientData
Origin mismatch
E2006R
Wrong challenge in response
Challenge mismatch
E2007R
Wrong RP ID hash in response
Relying party mismatch
E2008R
User Present flag not set
User presence not verified
E2009R
User verification required, but User Verified flag not set
User verification required during registration
E2010R
incorrect arguments passed to authenticate_complete()
Invalid auth args
E2011R
Incorrect type in CollectedClientData
Invalid client data type
E2012R
Invalid origin in CollectedClientData
Origin mismatch
E2013R
Wrong challenge in response
Challenge mismatch
E2014R
Wrong RP ID hash in response
Relying party mismatch
E2015R
User Present flag not set
User presence not verified
E2016R
User verification required, but user verified flag not set
User verification required during authentication
E2017R
Invalid signature
Signature verification failed
E2018R
ServerAuthenticatorAssertionResponse counter error
Authenticator counter not increased correctly
E2019R
Unknown credential ID
Credential not found
Parsing Errors (E30xx)
These errors occur during data parsing and validation:
E3000R
Not enough data to read
Insufficient data in buffer
E3001R
Error parsing field
Field parsing failed (see error message)
E3002R
Error parsing Invalid Signature
Signature parsing failed
E3003R
Error parsing field
Field parsing failed (see error message)
E3004R
Key error
Missing required key in data structure
E3005R
from_dict called with non-Mapping data
Invalid data type for dictionary conversion
TPM Attestation Errors (E40xx)
E4000R
Certificate should not have Subject
Invalid TPM certificate
E4001R
Certificate should have SubjectAlternativeName
Missing SAN
E4003R
TPM att_stmt missing
Missing TPM attestation
E4004R
TPM version 2.0 only supported
Unsupported TPM version
E4005R
TPM missing pubarea
Missing public area
E4006R
TPM public_key is not same as auth_data
Key mismatch
E4007R
tpm certInfo.magic is not set to TPM_GENERATED_VALUE
Invalid TPM magic
E4010R
TPM extradata is not equal to attToBeSignedHash
Hash mismatch
E4011R
TPM 'x5c' missing
Missing TPM certificate
E4013R
TPM error Subject sequence is empty
Empty subject
E4014R
x5c leaf certificate expired
Certificate expired
E4015R
Missing certificate extension extKeyUsage(2.5.29.37)
Missing key usage
E4016R
Missing tcg-kp-AIKCertificate OID in extendedKeyUsage
Missing AIK OID
E4017R
Attestation certificate AAGUID must match authenticator data
AAGUID mismatch
E4018R
'id-fido-gen-ce-aaguid' extension must not be marked critical
Extension error
E4019R
Attestation Signature for TPM is invalid
Invalid TPM signature
Handling Errors in Code
iOS (Swift)
Android (Java)
Common Error Scenarios
Registration Errors
Card pulled away too soon
600, 616, 617
"Hold your card steady and try again"
1. Keep card on device until operation completes 2. Wait for success/failure message
PIN not set
608, 611
"Please set a PIN first"
1. Call setPin() with 6+ digit PIN
2. Retry registration
User already registered
E2019R
"This account is already registered"
1. Use authenticateUser() instead
2. Or re-register with different username
Session timeout
E0024R, E0027R
"Request timed out. Please try again"
1. Restart registration from beginning 2. Ensure network is stable
Invalid relying party
E0025R, E2007R
"Configuration error"
1. Verify RP ID matches server domain 2. Check multi-tenant config
User verification required
E2009R
"Verification required"
1. Ensure PIN is provided 2. Check server UV requirements
Counter error
E2018R
"Security alert: Contact support"
1. May indicate cloned card 2. Re-register with new credential
Authentication Errors
User not found
403, E2019R
"Account not found. Please register"
1. Complete registration first 2. Check username spelling
Wrong PIN
608
"Invalid PIN. Please try again"
1. Re-enter PIN carefully 2. After 3 failures, card may lock
Card not registered
602, 603
"Card not registered. Please set up"
1. Register this card for the user 2. Verify correct card is being used
Session timeout
E0027R, 408
"Session expired. Please try again"
1. Restart authentication flow 2. Increase session timeout if frequent
Signature mismatch
E2017R
"Authentication failed. Try again"
1. Retry operation 2. If persistent, re-register card
User verification required
E2016R
"Verification required"
1. Ensure PIN is provided 2. Check server UV requirements
Counter error
E2018R
"Security alert: Contact support"
1. May indicate cloned authenticator 2. Re-register credential
AAGUID not whitelisted
E1045R, E1046R, E1047R
"This authenticator is not allowed"
1. Check AAGUID whitelist config 2. Add AAGUID to whitelist
Last updated

