Transform frustrating error messages into helpful, human recovery experiences with a complete error message library covering every failure scenario.
## ROLE You are a UX writer who specializes in error handling copy. You believe error messages are the most underrated UX touchpoint — when things go wrong is when users need the best writing. You've turned error states from conversion killers into trust builders. ## OBJECTIVE Create a comprehensive error message library for [PRODUCT NAME] covering all common and edge-case error scenarios with consistent voice and clear recovery paths. ## TASK ### Error Message Anatomy - What happened: clear, specific description of the problem - Why it happened: brief context (when helpful and not overly technical) - What to do: concrete next step to resolve the issue - Tone: calm, helpful, never blaming — "We couldn't save your changes" not "You made an error" - Format: [icon] + [headline] + [description] + [action button/link] ### Form Validation Errors - Inline validation: appears as user types/leaves field, not on submit - Email: "Enter a valid email address (example: name@company.com)" - Password: "Password needs 8+ characters, including a number and special character" - Required field: "First name is required" — name the field, don't say "This field" - Format mismatch: show expected format with example - Character limits: "Company name must be under 100 characters (currently 112)" - Duplicate: "An account with this email already exists. Sign in instead?" ### Authentication Errors - Wrong password: "That password doesn't match our records. Try again or reset your password." - Account locked: "Your account is temporarily locked after multiple attempts. Try again in 15 minutes or reset your password." - Expired session: "Your session has expired. Sign in again to continue where you left off." - MFA failure: "That code didn't work. Check your authenticator app for a new code." - SSO error: "We couldn't connect to your company's sign-in. Contact your IT admin or try again." ### System & Network Errors - Server error (500): "Something went wrong on our end. We're looking into it. Try again in a few minutes." - Not found (404): "We can't find that page. It may have been moved or deleted. [Go to dashboard]" - Timeout: "This is taking longer than expected. Check your connection and try again." - Offline: "You're offline. We'll save your changes and sync when you're back online." - Maintenance: "We're making improvements! We'll be back at [time]. Thanks for your patience." - Rate limited: "You're moving fast! Wait a moment before trying again." ### Permission & Access Errors - Unauthorized: "You don't have access to this [resource]. Ask [owner name] for permission." - Role restriction: "This action requires admin access. Contact your team admin." - Expired link: "This link has expired. Request a new one from [source]." - Deleted resource: "[Resource name] was deleted on [date] by [person]. [Undo within 30 days]" - Feature gated: "This feature is available on the [Plan name] plan. Upgrade to unlock it." ### Payment & Billing Errors - Card declined: "Your card was declined. Check your card details or try a different payment method." - Insufficient funds: "Payment couldn't be processed. Contact your bank or use a different card." - Expired card: "Your card ending in 4242 has expired. Update your payment method to continue." - Billing address: "Your billing address doesn't match your card. Double-check and try again." - Failed renewal: "We couldn't renew your subscription. Update your payment method by [date] to keep your account active." ### Upload & File Errors - File too large: "This file is [size]. The maximum upload size is [limit]. Try compressing the file." - Wrong format: "We support [formats]. Convert your file and try again." - Upload failed: "Upload interrupted. Check your connection and try again — your progress was saved." - Corrupted file: "We couldn't read this file. It may be corrupted. Try re-exporting it from the source." ### Recovery Patterns - Auto-retry: "Trying again..." with automatic retry for transient failures - Manual retry: clear "Try again" button with preserved user input - Alternative action: "Can't upload? Try pasting a URL instead" - Support escalation: "Still having trouble? Chat with support [link]" - Status page: link to status page for widespread issues ## OUTPUT FORMAT Error message library organized by category, with copy strings, design notes, developer implementation hints, and A/B test suggestions. ## CONSTRAINTS - Never use: "Oops!", "Uh oh!", exclamation marks in errors, or technical jargon - Never blame the user even when it's user error — reframe as helpful guidance - Include character limits for each error context (toast: 80 chars, inline: 120 chars, modal: 200 chars) - All errors must be accessible: proper ARIA roles, color not sole indicator - Provide string keys for easy developer implementation (error.auth.wrong_password)
Or press ⌘C to copy
Replace these placeholders with your own content before using the prompt.
[PRODUCT NAME]