Updated Sep 2026
Error message index
This page lists the error and confirmation messages you can see anywhere in
PostSignoff, grouped by area. Use your browser’s find function (Ctrl+F or
Cmd+F) and paste in the exact wording you saw. Messages are quoted verbatim,
including capitalization and punctuation. Where a message includes a
variable, it’s shown in curly braces, for example {platform} or {N}.
If you can’t find your exact message, check the generic messages row at the end of the relevant section. Most one-off wording that isn’t listed here falls back to one of those.
Most common problems
| Message | Where | Fix |
|---|---|---|
| {platform} rejected the access token ({detail}) — reconnect the account (platform appears lowercase, e.g. “twitter”) | Failed posts, publishing | Your connection expired or was revoked. Reconnect the account. See Connect your social accounts. |
| No connected {platform} account for this brand | Failed posts, publishing | Connect the account for that brand. See Connect your social accounts. |
| You’ve hit your plan limit / “You’ve used {used} of {limit} {label}.” | Anywhere you hit an AI, storage, or post cap | Wait for the monthly reset, free up the resource, or select Upgrade your plan. See Understand your plan and usage. |
| This form isn’t available. | Public capture form or Permission to Contact form | The link may be disabled, expired, or requires a paid plan. The message is deliberately the same for all three. Contact the agency that sent you the link. |
| Invalid email or password. | Sign in | Shown for any sign-in problem (wrong password, unknown email, unverified account). Double-check your email and password, or use Forgot your password? |
| Storage {N}% full / Storage full | Media page | Move media you no longer need to the trash and empty it, or buy more storage. See Manage your storage space. |
| This post has not been analyzed against its current content. Run the compliance analysis before approving. | Approving a post | Select Analyze, resolve or acknowledge the findings, then approve. See Run a compliance check before approving. |
| Publishing is turned off in this environment — approved posts stay in the queue for manual posting. | Post Now, Retry | Real publishing is disabled for this environment. An administrator has to turn it on. Approved posts still queue up correctly. |
Signing in
| Message | When it appears | What to do |
|---|---|---|
| Email is required | Sign in, forgot password, with the field left blank | Enter your email address. |
| Enter your password | Sign in, password field left blank | Enter your password. |
| Invalid email or password. | Sign in fails for any reason: wrong password, unknown email, unverified account, or rate-limited | This message is intentionally the same regardless of cause, so it can’t be used to check whether an email is registered. Re-check your email and password, or use Forgot your password? |
| Name is required / Create a password / Use at least 12 characters | Creating an account, with a field missing or the password under 12 characters | Fill in the field. Passwords need at least 12 characters. There’s no other complexity rule. |
| Could not create account. | Signing up, server rejects the request for a reason other than the field checks | Try again. If it keeps happening, contact support. |
| (no message: signup appears to succeed) | Signing up with an email that already has an account | This is by design. PostSignoff never reveals whether an email is already registered. If you already have an account, use Sign in or Forgot your password? instead. |
| That X account isn’t linked to anything here yet — create an account first, then connect X from your Profile. | Continue with X on the sign-up page | X can’t create a new account on its own. Sign up with email or another provider first, then link X from your Profile page. |
| An account with this email already exists. Verify your email first, then try again or sign in with your password. | Continue with Google/Facebook/X, email already registered a different way | Verify your email, then sign in with your password, or link the social account from your Profile page afterward. |
| That account is already connected to a different user. | Continue with Google/Facebook/X, account already linked elsewhere | Sign in with the account it’s already linked to, or use a different sign-in method. |
| Social sign-in failed. Please try again or use your password. | Continue with Google/Facebook/X, any other failure | Try again, or sign in with your email and password instead. |
| If an account exists for that address, a reset link is on its way. | Forgot your password | This message shows whether or not the email is registered, by design. Check your inbox (and spam folder). |
| Missing or expired reset token. / That reset link is invalid or expired. | Opening a password reset link | Request a new reset link from Forgot your password? |
| Use at least 12 characters / Passwords don’t match | Setting a new password | Enter a password of at least 12 characters, and make sure both fields match. |
| Your confirmation link has expired | Clicking an old email verification link | Select Resend email (or enter your email) to get a new link. |
| This confirmation link is invalid | Clicking a malformed or already-used verification link | Request a new link the same way. |
| Could not send the email — try again in a moment. | Requesting a new verification email | Wait a moment and try again. |
| If that account exists, we’ve sent a new link. Check your inbox. | Requesting a new verification email while signed out | Check your inbox and spam folder. |
| Code redeemed. | /verify-email, after signing up with an invite code | Your invite code applied successfully. Nothing further to do. |
| That code is not valid — you can redeem a code any time on the Billing & Usage page. | /verify-email, invite code entered at signup didn’t work | Redeem the code later from the Billing page, or check you typed it correctly. |
| We could not redeem your code — you can redeem it any time on the Billing & Usage page. | /verify-email, code redemption failed for a reason other than an invalid code | Try redeeming the code again from the Billing page. |
| Your session has expired. Please sign in again. | Any action that returns a 401 while signed in | Sign in again. This message covers every cause of a 401: an actually-expired session or a server-side sign-out. |
| Account suspended: {reason}. You are in read-only mode. | Persistent banner after a payment failure or other suspension | If the reason reads literally “payment_failed”, your last payment didn’t go through. Update your payment method. See Fix a suspended account. |
| (silently redirected to /login with no message) | Your account was banned or deleted | Contact support if you believe this is a mistake. The app currently gives no on-screen explanation for this case. |
| For security, sign in again before removing a sign-in method. | Profile page, removing a sign-in method with an older session | Sign out and back in, then try removing the sign-in method again. |
| Couldn’t remove that sign-in method. It may be your only way to sign in. | Profile page, removing a sign-in method fails for another reason | You need at least one way to sign in. Connect another method first if this is your only one. |
| Couldn’t start linking. Please try again. | Profile page, connecting a new sign-in method | Try again in a moment. |
Creating posts
| Message | When it appears | What to do |
|---|---|---|
| Select at least one platform | Create Post dialog, submitting with no platform chip selected | Select at least one platform. |
| We couldn’t find your business profile. Pick or create one on the Brands page, then try again. | Create Post dialog, AI generation, no brand set up | Go to the Brands page and create a brand first. |
| Content is required | Create Post dialog, “Write it myself” mode, submitting with empty content | Enter your post text. |
| Generation failed | Create Post dialog, AI generation fails for a reason not otherwise mapped | Try again in a moment. See the generic-failure note at the end of this section. |
| Failed to create post | Create Post dialog, submitting fails | Try again. If it keeps happening, check your connection. |
| Instagram requires an image or video — its post can’t publish until you add one here or on the post’s page. | Create Post dialog, Instagram selected with no image added yet | This is a warning, not a block. You can still create the post, but add an image or video before it can publish. See Add images to a post. |
| That’s the maximum of 10 images. Remove one to add another. | Create Post dialog, image tray already has 10 images | Remove an image from the tray before adding another. |
| {N} pick(s) weren’t added — the tray is full. They were still imported to your library. | Create Post dialog, selecting more stock/library images than the tray has room for | The extra picks are safely in your media library. Add them to a different post later if you want them. |
| {Platform} will use the first {max} | Create Post dialog, more images added than a selected platform allows | No action needed. That platform publishes only its first allowed images. The rest are ignored for that platform only. |
| Failed to update campaign | Assigning a campaign from a post’s campaign dropdown | Try again. |
| Template with id ‘{id}’ not found | Generating from a template that no longer exists | Pick a different template, or create a new one. |
| Built-in templates cannot be modified | Editing one of PostSignoff’s starter templates | Save your changes as a new template instead of editing the built-in one. |
| Draft added — review and approve it to include this channel | Post’s page, + Add channel, success | Confirmation only. Open the new platform version to review and approve it. |
| Failed to add the channel | Post’s page, + Add channel fails | Try again. |
| Group already has a {platform} post | Post’s page, adding a platform that’s already part of this post | That platform already has a version in this post. Edit the existing one instead. |
| Generic: Generation failed / Request failed with status 500 / Internal server error | Any AI text or image generation | The server hides most underlying OpenAI failures (rate limits, content-policy rejections, outages) behind a generic error so you can’t tell them apart from this message alone. Wait a minute and try again. If your prompt or brand topic might be unusual, try rewording it. If it keeps failing, contact support. |
Images & media
| Message | When it appears | What to do |
|---|---|---|
| PNG, JPG, GIF, WebP, MP4, MOV, or PDF only. | Uploading media, unsupported file type | Convert or choose a file in one of the listed formats. |
| File too large — max {N}MB for {category}. | Uploading media over the size cap (10MB images, 100MB video, 50MB documents) | Compress the file or choose a smaller one. |
| File doesn’t look like a real {type}. | Uploading a file whose contents don’t match its extension | Re-export or re-save the file in a genuine supported format, then re-upload. |
| Upload failed | Media upload fails for another reason | Check your connection and try again. |
| Instagram posts require an image or video | Adding media in the post editor for an Instagram platform version with none | Add an image or video before this platform version can publish. |
| Only images can be edited. | Opening the image editor on a video or document | The image editor only works on images. Videos and documents can’t be edited in-app. |
| Media not found. | Opening the image editor with a stale or deleted media link | Go back to the Media page and open the item from there. |
| Could not load the image. | Image editor fails to load the source file | Try again. If it persists, the original file may be unavailable. |
| Original image unavailable — editing the flattened copy. | Image editor, re-editing an image whose original was purged | Informational only. Your edit still works, starting from the last saved version instead of the true original. |
| Save failed / Export failed / Copy failed | Image editor, saving/exporting/copying | Try again. |
| Aspect differs — the export will be center-cropped. Tip: use the matching crop preset. | Image editor, exporting at a size with a different aspect ratio than your crop | Informational. Pick the crop preset matching your export size to avoid an unwanted crop. |
| No stock providers configured — set PEXELS_API_KEY on the server to enable Pexels. | Opening the stock photo picker with no provider configured | This is a server configuration issue. Contact whoever manages your PostSignoff environment. |
| You can import up to {N} items at a time | Stock picker, selecting more than the import cap | Deselect down to the limit, import, then repeat for the rest. |
| Imported {n} item to your library / Imported {n} items to your library (singular for 1, plural otherwise) | Stock picker, successful import | Confirmation only. |
| {n} import(s) failed: {firstError} | Stock picker, some imports failed | Retry the failed ones. The message shows the first underlying error. |
| Pexels rate limit reached — try again in a bit. | Stock search or import, Pexels API rate-limited | Wait a few minutes and try again. |
| No results for “{query}“ | Stock picker search with no matches | Try a different search term. |
| Color search isn’t available for videos | Stock picker, using the color filter while browsing videos | Switch to photo search to use the color filter, or clear it. |
| {n} of 4 images failed to generate | AI image generation, partial batch failure | Use the images that succeeded, or select Generate again for a fresh batch of 4. |
| {err.message} — your posts are saved; you can try again or add an image later from the post page. | AI image generation, the generated image failed to attach to the post | Your post and its text are safe. Retry attaching, or add an image from the post’s page later. |
| Failed to load media | Media page fails to load your library | Refresh the page. |
| Archive failed / Unarchive failed / Trash failed / Restore failed / Delete failed | Media page, the corresponding action fails | Try again. |
| Permanently delete this item? This can’t be undone. | Media page, Delete now confirmation | Confirm only if you’re sure. This is the one place media is truly, permanently removed. |
| Items in the trash are deleted permanently after 30 days. | Media page, Trash tab | Informational. Restore anything you want to keep before the 30 days are up. |
| Storage {N}% full ({used} of {limit} MB). Move media you no longer need to the trash and empty it, or buy more storage on the Billing page. | Media page, storage gauge at 90% or more | Free up space via the trash, or buy a storage add-on. See Manage your storage space. |
| Trash is empty. / No archived media. / No media yet — drop a file above to get started. | Media page, empty states for the corresponding tab | Informational, not an error. |
| Media is attached to a pending or approved post | Trying to archive or trash media still in use | Remove it from the post, or wait until the post is published/rejected, then try again. |
| Only images can be edited. / Media is in the trash — restore it first | Various media-state guard errors | Follow the message: restore, reject, or otherwise change the item’s state before retrying the action. |
| Generic: Request failed with status 500 / Internal server error | Any media, stock, or AI-image action | As with generation, uploads and image AI can surface a bare server error for problems the app can’t identify more specifically (a too-large multipart upload is one known case). Try a smaller file or a different image, and try again. |
Publishing & connections
| Message | When it appears | What to do |
|---|---|---|
| {platform} rejected the access token ({detail}) — reconnect the account (platform appears lowercase, e.g. “twitter”) | Publishing to any platform whose connection is expired or revoked ({detail} is usually “HTTP 401”) | Reconnect the account from Settings → Connections. See Connect your social accounts. |
| No connected {platform} account for this brand | Publishing when no account is connected for that platform on this brand | Connect an account for that platform. |
| Posts to {platform} will fail until you reconnect. | Settings → Connections, a connection shows expired or error | Select Reconnect. |
| No connected accounts yet. | Settings → Connections, empty state | Select + Connect account to add your first one. |
| No {kind} available — make sure you are an Admin of the {Page/kind}. | Connecting Facebook or LinkedIn, the target picker comes back empty | You need admin access to at least one Facebook Page or LinkedIn organization to connect it. Ask an existing admin to add you. |
| Could not finish connecting | Facebook/LinkedIn target picker, finalizing the chosen Page/org fails | Retry from Settings → Connections. |
| Connection failed: {message} | Returning from an OAuth connect attempt that failed | Retry Connect or Reconnect. The message shows the platform’s own reported reason. |
| Failed to disconnect the account | Settings → Connections, Disconnect | Try again. If it persists, contact support. |
| Failed to remove the account | Settings → Connections, Remove | Try again. If it persists, contact support. |
| {moved} {Platform} post(s) moved to Pending | Disconnecting/removing an account with approved posts, choosing to move them | Confirmation. Those posts are back in your review queue and need re-approving once you reconnect. |
| Scheduled posts can’t publish without this connection… / they will fail at their scheduled time unless you reconnect {label} first. | Disconnect/Remove dialog, choosing whether to move affected posts to Pending | Choose Move posts to Pending (recommended) unless you’re reconnecting immediately. |
| Not configured for this environment | Settings → Connections, a platform tile is greyed out | That platform isn’t set up on this server yet. Contact whoever manages your PostSignoff environment. |
| Publishing to social platforms is turned off in this environment. Approved posts stay in the queue for manual posting. An administrator can enable it by setting PUBLISH_EXTERNAL_ENABLED=true. | Server-side, publishing disabled | Real publishing is off for this environment. Approved posts still queue correctly. An administrator has to enable publishing. |
| Publishing is turned off in this environment — approved posts stay in the queue for manual posting. | Content/History page, same condition as above | Same as above. This is the client-facing version of the same message. |
| Post must be approved before publishing. Current status: ‘{status}’. | Trying to publish a post that isn’t approved | Approve the post first. |
| Publish now? This goes live immediately. | Post Now confirmation | Confirm only if you want it to publish right away, bypassing any schedule. |
| Publishing now | Post Now / Retry, action started | Confirmation only. Wait for the result. |
| Failed to publish | Post Now or Retry fails without a more specific reason | Check the failure detail on the post, then retry. |
| Some posts failed to approve (2 of 5) (count varies) | Bulk approve with partial failures | Open the posts that didn’t approve to see why (often a missing compliance analysis). |
| needs compliance analysis — open the post | Bulk approve, a post skipped because it hasn’t been analyzed | Open the post, select Analyze, then approve it individually. |
| Cannot approve post with status ‘{status}’. Must be ‘pending’. | Approving a post that isn’t pending | Only pending posts can be approved. |
| Cannot reject post with status ‘{status}’. Must be ‘pending’ or ‘approved’. | Rejecting a post in another status | Only pending or approved posts can be rejected. |
| Cannot reactivate post with status ‘{status}’. Must be ‘expired’ or ‘rejected’. | Reactivating a post that isn’t expired or rejected | Only expired or rejected posts can be reactivated. |
| Post moved back to the queue / Reactivated | Reactivating an expired or rejected post, success | Confirmation. The post is pending again. |
| Failed to reactivate | Reactivating fails | Try again. |
| Failed to duplicate | Duplicating a post fails | Try again. |
| Moved to Pending — {Platform} was disconnected ({date}). Re-approve it once the account is reconnected. | A post’s status note, after its connection was disconnected/removed | Reconnect the account, then re-approve the post. |
| This channel isn’t connected — the post can’t publish until you connect it on the Brands page. | Post’s page, a platform version with no connection | Connect that platform’s account from Settings → Connections (the banner’s link goes to the Brands page, which links onward). |
| Failed to load outcome | History page, opening the outcome drawer fails | Refresh and try again. |
| No platform reference available | History outcome drawer, no link to the live post exists | The platform didn’t return a link for this post, so there’s nothing to view live. |
| Generic: Unknown publish error / Request failed with status 500 | Publish attempts with no more specific mapped cause | Retry once. If it keeps happening on the same post, open it and check for missing media or an expired connection first. |
Approving & compliance
| Message | When it appears | What to do |
|---|---|---|
| This post has not been analyzed against its current content. Run the compliance analysis before approving. | Approving a post with compliance review enabled, no current analysis | Select Analyze, then approve. See Run a compliance check before approving. |
| Resolve the findings or tick the acknowledgement to approve as-is | Approve button disabled, unresolved compliance findings | Fix the flagged content, or tick the acknowledgement checkbox and use Acknowledge & approve. |
| Compliance analysis failed. Please try again. | Running Analyze fails outright | Try again in a moment. |
| We couldn’t fully check this post — the review service was unavailable. You can still proceed, but please review carefully. | Analyze runs in a degraded state (review service unavailable) | Review the content yourself before approving. The automatic check couldn’t fully run. |
| No compliance issues detected. | Analyze completes clean | Nothing to fix. You can approve. |
| This is review assistance, not a compliance certification. | Always shown alongside compliance findings | Informational. A clean or acknowledged result isn’t a legal sign-off. Use your own judgment. |
| Findings acknowledged{ on date}. Approving will publish as-is. | After you’ve acknowledged findings | Informational. Approving now publishes the content with the findings on record, unresolved. |
| Could not insert the disclaimer. | Findings panel, Insert disclaimer fails | Try again. |
| Check unavailable / Compliance: OK / Reviewed by {who} · {date} / Needs review | Compliance status badge on a post | Match the label to the state. “Needs review” means you still need to Analyze or resolve findings before approving. |
| Restore this version? Your current edits will be overwritten. | Version history, Restore | Confirm only if you want to discard your current edits in favor of the older version. |
| Restore failed | Version history restore fails | Try again. |
| Posted content is locked — the published record can’t be edited. | Trying to edit a post that has already published | Published posts are permanent. Create a new post instead. |
| Rule packs are not available right now — the default Medicare (CMS marketing rules) pack applies. | Brand settings, choosing a compliance rule pack | Informational. Your posts are still checked against the Medicare pack even if the picker is unavailable. |
| Cannot enable this form: {blockers} | Permission to Contact form settings, activating with unresolved blockers | Resolve each listed blocker (agency name, agent NPN, etc.), then try enabling again. See Set up the Permission to Contact form. |
| Generic: Request failed with status 500 | Analyze or approve action with no more specific mapped cause | Try again. If a specific post keeps failing to analyze, note its content and contact support. |
Contacts & forms
| Message | When it appears | What to do |
|---|---|---|
| This form isn’t available. / The link may have expired or been turned off. | Public capture form or PTC form, link is unknown, disabled, or plan-locked | These three causes look identical on purpose. If it’s your own form, check it’s enabled and your plan supports it. Otherwise contact the agency that shared the link. |
| This form is not accepting submissions right now. | Public capture form submit, form disabled or its monthly quota is used up | Try again later, or contact the agency directly. |
| Verification failed — please try again. | Public form submit, CAPTCHA check failed | Retry the form. This can happen from a slow connection as well as a failed CAPTCHA. |
| Generate a new link? The current link stops working immediately — posts that already include it will point to a dead page. | Brand settings, Lead Capture, New link | Only regenerate the link if you’re ready to update every post and page that shares the old one. This confirmation is your only guard. |
| Could not load lead-capture settings. | Brand settings, Lead Capture section fails to load | Refresh the page. |
| Collect emails and phone numbers from your posts with a branded signup page. Available on paid plans — upgrade to unlock. | Brand settings, Lead Capture on a free plan | Upgrade to a paid plan to enable lead capture. |
| Your capture form is disabled. Enable it in brand settings. | Post editor, Capture button, form exists but is off | Enable the capture form in Brand settings, then try again. |
| Export failed | Contacts page, CSV export fails | Try again. |
| No contacts match your search. / No contacts yet. Add a capture link to a post to start collecting signups. | Contacts page, empty states | Informational, not an error. |
| Delete {email}? This permanently removes their data. | Contacts page, deleting a contact | This is a genuine permanent deletion, unlike most other deletes in PostSignoff. Confirm only if you mean it. |
| Check the box confirming you have read and understand this form. / Type your full name to sign. | Public Permission to Contact form, signing without completing the acknowledgement | Tick the checkbox and type your name exactly as asked. |
| Select at least one type of coverage. / Enter your first name. / Enter your last name. / Enter a 5-digit ZIP code, for example 27601. | Public Permission to Contact form, field-level validation | Fill in the field as described. |
| Choose at least one way for us to contact you. | Public PTC form, no contact method selected | Select at least one contact method (phone, text, email, or mail). |
| Text messages can only be sent to a mobile number. Choose “Cell phone (mobile)” above. | Public PTC form, texting selected with a landline phone type | Change the phone type to Cell phone (mobile), or deselect texting. |
| This form has not been reviewed by counsel or approved by your carriers. Do not enable it until both are complete. | Permission to Contact settings, permanent banner | This banner never goes away automatically. It’s a standing reminder to get legal and carrier sign-off before enabling. |
| Resolve these before you can activate this form: | Permission to Contact settings, unresolved activation blockers | Fill in each listed item (agency legal name, agent NPN, coverage types, etc.). |
| Enter your agency’s legal name. / Enter the licensed agent’s full name. / Enter a valid National Producer Number (1–10 digits). | Permission to Contact settings, specific missing fields | Fill in the named field. |
| Remove the carrier name. This form must stay carrier-neutral — naming a carrier limits the permission to that carrier’s products. | Permission to Contact settings, a carrier name was entered | Remove any carrier name from the form text. It must stay carrier-neutral. |
| Could not export your consents. Check your connection and try again. | PTC Consents page, CSV export fails | Check your connection and retry. |
| Generic: Something went wrong. Please try again. | Public capture or PTC form, unmapped submit failure | Retry the form once. If it keeps failing, contact the agency directly rather than resubmitting repeatedly. |
Billing & limits
| Message | When it appears | What to do |
|---|---|---|
| Could not start the upgrade. Try again, or contact support if it keeps failing. | Billing page, selecting Upgrade to Starter / Upgrade to Pro, checkout fails to start | Try again. If it keeps failing, contact support. |
| There is no billing account to manage yet — upgrade to a paid plan first. | Billing page, Manage subscription on a free plan with no Stripe customer record | Upgrade to a paid plan first. The billing portal only exists for paying accounts. |
| Could not open the billing portal. Try again in a moment. | Billing page, Manage subscription fails for another reason | Try again shortly. |
| Could not open the billing portal. Try again from the Billing page. | The Update payment method shortcut fails to reach Stripe | You’re redirected back to the Billing page automatically. Retry Manage subscription from there. |
| Storage add-ons are not configured yet. Contact support. | Billing page, buying a storage add-on, no SKU configured | Contact support to get storage add-ons enabled for your account. |
| Could not start the storage purchase. | Billing page, buying storage fails for another reason | Try again. |
| Storage added — your new limit is active. | Billing page, storage add-on purchase completes without a Stripe redirect | Confirmation only. Your new storage limit applies immediately. |
| Code redeemed. | Billing page, Redeem with a valid invite/promo code | Confirmation only. |
| That code is not valid. | Billing page, Redeem with an unrecognized, expired, deactivated, or already-maxed-out code | Double check the code, or ask whoever gave it to you for a fresh one. |
| Redemption failed. | Billing page, Redeem fails for another reason | Try again. If it’s a special code tied to a specific plan, make sure you’re on the right plan first. |
| You’re boosted to {SLUG} until {date}. | Billing page banner, an active plan override/promotion | Informational. The all-caps text is the plan’s internal name. It still refers to a real plan on your account. |
| You’ve hit your plan limit / “You’ve used {used} of {limit} {label}{ this month}.” | Anywhere you exceed a plan limit (AI generations, storage, posts, brands, and so on) | Select Maybe later to dismiss for now, or Upgrade your plan. See Understand your plan and usage. |
| {used} of {limit} / of unlimited | Billing page usage cards | Shows how much of each monthly or standing allowance you’ve used. |
| (a raw label like “contacts_stored” instead of plain text) | Usage cards or the plan-limit popup, for the Contacts and Permission to Contact dimensions | This is a known display gap. The raw internal name leaks through for two specific usage types. It still refers to a real limit. Treat it the same as any other plan-limit message. |
| Account suspended: payment_failed. You are in read-only mode. | Persistent banner after a failed payment | The raw wording is a known display issue, but the meaning is real: update your payment method to restore full access. See Fix a suspended account. |
| Generic: Request failed with status 500 / Internal server error | Any billing action with no more specific mapped cause | Try again. If a checkout or portal redirect never completes, refresh the Billing page and retry rather than resubmitting. |
A note on generic errors
A few messages aren’t specific to any one feature:
- Request failed with status 500
- Internal server error
- Unknown error
- Unknown API error
You can see any of these from almost any action in PostSignoff. The server deliberately hides most of the underlying detail behind a generic message in production. This is especially common for AI text and image generation, where the real cause (an OpenAI rate limit, a content-policy rejection, or a temporary outage) gets masked the same way an unrelated bug would. If you see one of these:
- Wait a minute and try the same action again.
- If it’s an AI generation, try rewording the prompt or topic. Some rejections are caused by the content itself.
- If the same specific action keeps failing the same way, contact support and describe exactly what you were doing.