VeriSelf Error Codes — Complete Reference

Every VeriSelf verification response includes an error code in the format EXXX. The frontend displays it as “message (E001)”. This reference explains each code, why it occurs, and how to resolve it.

Error Code Table

CodeWhy It HappensHow to Resolve
E001User is not logged in when attempting to verify.Log in to the site and try again. The verification shortcode requires an authenticated user session.
E002User already verified and re-verification interval hasn’t elapsed.Wait for the configured lockout period (shown in the error message), or contact the site administrator to reset your verification status.
E003Too many verification attempts within the rolling window (default: 3 attempts per hour).Wait for the rolling window to expire (typically 1 hour from the first attempt) before trying again.
E004No image data received, image too large (>20 MB), or an HTTP URL was submitted instead of a valid image (SSRF protection).Ensure your camera is working and the capture completes fully. Check your internet connection. If the issue persists, try a different browser.
E005Liveness security token expired or mismatched. Each verification session requires a fresh token generated when the page loads.Reload the page and try again. The token expires in 300 seconds (5 minutes) for security.
E006Insufficient thumbnail frames received for liveness analysis (fewer than 3 frames).Ensure your camera provides a steady video stream. Try again in good lighting.
E007Movement check failed — consecutive frames are too similar, suggesting a static photo was held up to the camera.Move naturally during capture. The system looks for micro-movements between frames to confirm a live person.
E008Blink not detected. A printed photo or video replay cannot produce the distinctive variance dip that a real blink creates.Try again, keeping your face centred. Blink naturally — the system captures 10 frames over ~800 ms, which is usually enough to catch a blink.
E009Image integrity check failed — the captured image is too small (<100 pixels in either dimension).Move closer to the camera or use a higher-resolution camera. Try again in good lighting.
E010GPS location is required (mandatory mode) but was not provided.Allow location access in your browser when prompted. Reload the page and try again.
E011AI analysis API returned an HTTP error (non-200 status). This usually indicates a temporary issue with the AI server or VeriSelf Cloud AI.Try again later. If the problem persists, the site administrator should check the API server logs.
E012AI analysis API returned an unexpected or malformed response.Try again. If persistent, the site administrator should verify the AI model is working correctly and returns valid JSON.
E013Too many faces detected (single-person mode requires exactly one face).Ensure only your face is visible in the frame. Remove glasses or accessories that might confuse the AI.
E014No face detected in the captured image.Position your face within the outline guide. Ensure the room is well-lit and your face is clearly visible, not obscured by hands, masks, or shadows.
E015Not enough faces detected (couple mode requires exactly two faces).Both persons must be clearly visible within the outlines. Adjust positioning so both faces are fully in frame.
E016The AI determined the image is not a live webcam capture (e.g., it appears to be a photo of a screen or printed picture).Use a live camera feed directly. Do not present photos of photos or screen displays to the camera.
E017The estimated age falls outside the valid range (too young or too old for the AI model’s confidence).Ensure good lighting and a clear view of your face. If you are an adult but getting this error, try again in different lighting.
E018Connection to the AI API server failed (timeout, DNS resolution failure, or network unreachable).Try again later. The site administrator should verify the API server is running and reachable.
E019The estimated age is below the site’s configured minimum age requirement.You cannot proceed if your estimated age is below the minimum. If you believe this is an error, ensure good lighting and try again.
E020Reverse geocoding via Nominatim (OpenStreetMap) failed — could not convert GPS coordinates to a city/country.Try again. The site administrator should verify the Nominatim User-Agent setting and that the Nominatim API is accessible.
E021Credit consumption failed — the user has insufficient credits or the credit provider was unreachable.Purchase additional credits or wait for trial/day credits to reset. Contact the site administrator if you believe you have sufficient credits.
E999An unknown or unmapped error occurred.Contact the site administrator with the exact error message and time of occurrence.

Where Error Codes Appear

  • Frontend — displayed as part of the error message, e.g., “Session expired. Please reload and try again. (E005)”
  • Verification Log — appended to the message column in VeriSelf → Logbook, e.g., “Too many attempts. Rate limited. [E003]”
  • AJAX Response — included as the error_code field in the JSON response object

Logging All Attempts

Since VeriSelf v2.1.0, every verification attempt is logged — including early failures like rate limits, liveness checks, and token expiry. Previously, only attempts that reached the AI analysis stage were recorded. If you do not see an entry in the logbook for a failed attempt, ask the user to retry and check again.

Debug Mode

When Debug Mode is enabled in VeriSelf → Maintenance → Expert Settings, additional diagnostic data is included in liveness failure responses and written to the PHP error log with the [VeriSelf Liveness Debug] prefix. This data includes max_pair_diff, pair_ratios[], variance_curve[], and best_blink values — useful for troubleshooting persistent liveness failures.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *