Troubleshooting
Step-by-step fixes for the most common issues with VeriSelf.
The gate doesn’t appear
- Check that the shortcode is placed correctly or the gate trigger is set to “On page entry”.
- Ensure you’re viewing the site in HTTPS (not HTTP). Camera access is blocked over HTTP.
- Clear your browser cookies — if you were previously verified, the cookie may be hiding the gate.
- Check System → Re-Verify Interval — if set to “Never”, verified users won’t see the gate again until the cookie expires.
Camera not working
- HTTPS required. The browser blocks getUserMedia() on HTTP sites.
- Permissions. The user must click “Allow” when the browser asks for camera access. On mobile, they may need to tap the camera icon in the address bar.
- Browser support. Chrome, Firefox, Safari, and Edge are supported. Internet Explorer is not.
- No camera detected. If the device has no camera (e.g., desktop without webcam), the user will see “No camera found.”
- Mobile resolution. The plugin automatically requests lower resolution on mobile to avoid lag.
“Verification failed” — liveness error (E007/E008)
The server-side liveness check detected:
- Too little movement (E007) — The 10 frames were too similar. Ask the user to move their head slightly while capturing.
- No blink detected (E008) — The eye region showed no variance. Ask the user to blink naturally during capture.
Fix: Improve lighting. The liveness algorithm works best with:
- Bright, even lighting (avoid backlighting from windows)
- Face filling most of the camera frame
- Natural micro-movements (don’t hold perfectly still)
“Verification failed” — confidence too low (E023)
The AI estimated the age but with low confidence. Common causes:
- Poor lighting or shadows on the face
- Face too far from camera
- Sunglasses, hats, or masks obscuring the face
- Low-quality camera
Fix: Adjust the Min Confidence in Expert Settings (default 0.7). Lower to 0.6 for more permissive results; raise to 0.8 for stricter verification.
“Verification failed” — fraud score too high (E024)
The fraud scoring detected suspicious patterns:
- VPN or datacenter IP
- Large distance between IP geolocation and GPS coordinates
- User’s profile country doesn’t match their IP country
Fix: If you’re testing from a VPN or remote server, the fraud score will be high. Either disable VPN detection temporarily, raise the Max Fraud Score threshold, or set fraud action to “Log only” while testing.
AI returns “No face detected” (E014)
- Face is not fully within the outline
- Too dark or too bright
- Face is partially obscured (hands, hair, glasses glare)
- Camera is too far
Photos not showing in the log
- Debug Mode must be ON — Photos are only saved when Debug Mode is enabled in Maintenance settings.
- Check permissions — The wp-content/uploads/veriself-debug/ directory must be writable by the web server.
- Retention — Photos older than the debug retention period are auto-deleted.
- GDPR — Even with debug mode on, photos are stored with .htaccess protection (Deny from all) and served only through the admin AJAX endpoint with nonce verification.
The API connection test fails
- Check the URL — For Ollama, try http://127.0.0.1:11434 if it’s on the same server. For remote servers, ensure the port is open in the firewall.
- CORS — If Ollama is on a different domain, you may need to configure Ollama’s OLLAMA_ORIGINS environment variable.
- Authentication — If Ollama has authentication enabled, enter the key in the API Key field.
- Model name — Ensure the model name exactly matches what Ollama reports (ollama list).
Cache compatibility
Caching plugins (WP Rocket, W3 Total Cache, LiteSpeed Cache, etc.) can interfere with VeriSelf in specific ways. Here’s how to identify and resolve cache-related issues.
Verification shortcode is cached, showing stale results
The shortcode generates a unique liveness token and session per page load. If your page cache serves a stale HTML copy, the token will be expired or mismatched (error E005).
Fix: Exclude pages containing from caching, or exclude them by URL path/pattern. For most caching plugins, this is done via:
- WP Rocket: Settings → Cache → Never Cache URL(s) — add the paths containing your verification shortcode.
- W3 Total Cache: Performance → Cache Groups → Never Cache the Following Pages — add your verification page paths.
- LiteSpeed Cache: Cache → Excludes → Do Not Cache URIs — add your verification page paths.
- WP Super Cache: Settings → Accepted Filenames & Rejected URIs → Add to Rejected URIs.
AJAX requests being cached
VeriSelf uses WordPress AJAX endpoints (admin-ajax.php and admin-post.php) for verification requests. Most caching plugins exclude these by default, but verify:
- WP Rocket: AJAX caching is disabled by default — no action needed.
- W3 Total Cache: Ensure “Don’t cache AJAX requests” is checked in Performance → General Settings.
- LiteSpeed Cache: AJAX support is enabled by default — ensure “ESI” is not forcibly caching admin-ajax.php responses.
Cookie-based page gate not showing on cached pages
If you use VeriSelf’s “On page entry” gate mode with cookies, a cached page may not reflect the user’s verification status until they receive the fresh uncached version.
Fix: Use the shortcode-based gate instead of the cookie-based gate. The shortcode is excluded from cache and runs fresh for every visitor. Alternatively, configure your caching plugin to serve pages dynamically based on the verification cookie (veriself_verified).
Minification breaking the verification UI
Some caching plugins aggressively minify or combine JavaScript, which can break the VeriSelf frontend script.
- Fix: In your caching plugin, exclude the VeriSelf script from minification/combining. Look for settings like “Exclude JavaScript files” and add the pattern
veriselforveriself-frontend. - LiteSpeed Cache: In JS Settings, add
veriselfto JS Excludes. - WP Rocket: Exclude
veriself-frontendfrom Combine JavaScript Files. - Autoptimize: Add
veriselfto “Exclude scripts from Autoptimize”.
Delayed JavaScript execution
Some caching plugins defer or delay JavaScript to improve page speed metrics. If VeriSelf scripts are deferred, the verification UI may not render until after the page has finished loading, or may not render at all.
- Fix: Exclude
veriself-frontendfrom JavaScript defer/delay settings. - WP Rocket: Exclude under “Delay JavaScript execution” → Excluded Scripts → add
veriself. - LiteSpeed Cache: Exclude
veriselfunder JS Defer/Delay settings.
If you continue to experience issues after applying these fixes, enable Debug Mode in VeriSelf → Maintenance → Expert Settings and check the browser console (F12) for JavaScript errors.
