Skip to main content

Overview

This guide mirrors the Korean reference and catalogs all 37 error pages that can appear during the Liveform mobile verification journey. Each table aligns the developer-facing code and route with the exact message your users see so support teams, operators, and developers can speak with one voice.
All error pages fall into one of four rendering paths:
  1. /error-page/:errorType
  2. /face-retry/:faceErrorCode
  3. /error-page/token-*
  4. Next.js Error Boundary

General error pages (/error-page/:errorType)

🔒 Authentication & authorization errors

TypeDeveloper code & URLUser messageOccurrence
Page not foundpage-not-found (/error-page/page-not-found)“The page could not be found”Appears when a user types a non-existent URL or opens an outdated bookmark.
Service blockedservice-blocked (/error-page/service-blocked)“Submissions are temporarily paused”Shown when an operator temporarily halts submissions but users keep visiting the link.
Invalid pathbad-path (/error-page/bad-path)“Invalid URL path”Triggered if someone edits the shared link or navigates to a non-whitelisted route.
Refresh detectedrefresh (/error-page/refresh)“Refresh detected”Displayed when the user refreshes or clicks back/forward mid-flow and the session resets.
Unsupported browserinvalid-browser (/error-page/invalid-browser)“Unsupported browser”Appears on legacy browsers or environments without WebAssembly support; users must switch to a modern browser.
Hash validation failurehash_problem (/error-page/hash_problem)“Hash validation issue”Shown if multiple tabs or skipped steps break the data integrity; the flow must restart.

📅 Project status errors

TypeDeveloper code & URLUser messageOccurrence
Project closedproject-closed (/error-page/project-closed)“This project is closed and access is restricted”Users reopening a finished campaign see that no further submissions are allowed.
Period expiredperiod (/error-page/period)“Project submission window expired”Triggered when someone visits after the allowed submission window has ended.
Submission count limitsubmission-number-limit (/error-page/submission-number-limit)“You submitted more than 15 times”Trial projects stop additional attempts once the 15 submission cap is exceeded.

📤 Submission status errors

TypeDeveloper code & URLUser messageOccurrence
Already approvedalready_approved (/error-page/already_approved)“This device has already been verified”A device/browser that already completed verification is blocked until the waiting period ends.
Already rejectedalready_rejected (/error-page/already_rejected)“This submission was already rejected”The user tries again before the rejection cooldown expires and is told to wait.
Pending reviewalready_pending (/error-page/already_pending)“Your submission is under review”A new submission is attempted while the previous one is still under review.
Processed (approved)processed_submission-approved (/error-page/processed_submission-approved)“This submission was already processed (approved)“Reopening an approved result simply reminds the user no further action is needed.
Processed (rejected)processed_submission-rejected (/error-page/processed_submission-rejected)“Verification was rejected”Reopening a rejected result shows the remaining wait time before a retry.
IP already approvedip_already_approved (/error-page/ip_already_approved)“This IP address has already been approved”Another user on the same network tries to redo a verification that already succeeded.
IP already rejectedip_already_rejected (/error-page/ip_already_rejected)“This IP address has already been rejected”The same network repeatedly fails or is still within a rejection cooldown; users must switch networks.
TypeDeveloper code & URLUser messageOccurrence
Email already rejectedemail_already_rejected (/error-page/email_already_rejected)“Verification rejected / This email was already rejected”Reusing an email that is still within a rejection waiting period shows the remaining cooldown.

🛡️ Security & fraud detection

TypeDeveloper code & URLUser messageOccurrence
Suspected forgerysuspected-forgery (/error-page/suspected-forgery)“Suspected forgery detected”Triggered when the captured ID looks blurry, manipulated, or otherwise inauthentic; the user must reshoot.
File upload not allowednot-allow-file-upload (/error-page/not-allow-file-upload)“File upload is not allowed”Secure browsers, private mode, or denied camera/file permissions prevent uploads; users must enable access or switch devices.
Duplicate face detectedface_validation_error (/error-page/face_validation_error)“Duplicate face detected”The system detects the same face from a previous submission and instructs the user to contact support.
Abnormal actionabnormal_action (/error-page/abnormal_action)“Abnormal behavior detected”Uploading screenshots, over-edited images, or identical selfies triggers this message and forces a proper retry.

⚠️ Anomaly (QS) errors

TypeDeveloper code & URLUser messageOccurrence
Abnormal verification deniedabnormal_verification_denied (/error-page/abnormal_verification_denied)“Abnormal verification denied”Rapid risky attempts lower the trust score; the user must wait for the timer to expire.
Abnormal rejectedabnormal_rejected (/error-page/abnormal_rejected)“Abnormal rejection”Severe anomalies trigger an immediate rejection and require security issues to be resolved before retrying.
IPQS system erroripqs_system_error (/error-page/ipqs_system_error)“IPQS system error”VPNs or unstable networks prevent the IP safety check; users should switch to a reliable connection.

🌍 IP risk errors

TypeDeveloper code & URLUser messageOccurrence
Risky categoryipRisk_failCategory (/error-page/ipRisk_failCategory)“IP risk category failed”Connections from VPNs, Tor, or data centers are blocked until users switch networks.
Distance check faileddistanceChecks_ipGeo (/error-page/distanceChecks_ipGeo)“IP distance check failed”When GPS and IP geolocation are far apart (e.g., local GPS but overseas VPN) the user must disable the VPN.
Blacklisted countryblackliskCountries (/error-page/blackliskCountries)“Blacklisted country”Access from restricted countries is denied with guidance that the service is unavailable there.
Risk duration lockipRisk_durationHours (/error-page/ipRisk_durationHours)“IP risk duration limit”Repeated risky attempts lock the IP for a set duration; users can only retry after the timer ends.

⏱️ Rate limit & lockout

TypeDeveloper code & URLUser messageOccurrence
Rate limit exceededrate_limit_exceeded (/error-page/rate_limit_exceeded)“Request limit exceeded”Too many refreshes or submissions in a short period trigger a temporary pause.
Account lockedlocked_out (/error-page/locked_out)“Account locked”Numerous failures or suspicious activity lock the account until the displayed timer expires.

🔵 Token error pages (/error-page/token-*)

TypeDeveloper code & URLUser messageOccurrence
Token missingtoken-missing (/error-page/token-missing)“Token ID is not active” / “Try again on another mobile device”Copying a link without its token parameter or opening an incomplete URL triggers this page.
Token expiredtoken-expired (/error-page/token-expired)“Token expired” / “Try again on another mobile device”Very old or reused links surface this message; users need a fresh token.
Token already approvedtoken-approved (/error-page/token-approved)“Token already approved”A token that already completed verification is reopened, so duplicates are blocked.
Token pendingtoken-pending (/error-page/token-pending)“Token under review”The same token is accessed while its submission is still under review; users must wait.
Token rejectedtoken-rejected (/error-page/token-rejected)“Token rejected”The token previously failed verification and requires contacting an operator before retrying.

🔄 Face retry (/face-retry/:faceErrorCode)

TypeDeveloper code & URLUser messageOccurrence
Dynamic face reshootface-retry/:faceErrorCodeLocalized per error code / Button: “Retake”Poor lighting, misaligned faces, or other capture issues prompt a reshoot; certain codes (e.g., invalid_submission_status) hide the reshoot button entirely.

❌ Runtime errors (Error Boundary)

TypeDeveloper code & URLUser messageOccurrence
Runtime errorNext.js Error BoundaryDefault: “Your request failed”, “KYC verification was rejected”
Special: “Unsupported browser” (WebAssembly error), “This browser does not support storage functionality”
Network drops, force refreshes, or storage-disabled environments (private mode) can crash the app; users should tap “Retry” or switch to a modern browser/standard mode.
Use these tables to align support scripts, monitoring alerts, and QA scenarios so every stakeholder is describing the same screen with the same vocabulary.