Most setup problems produce a specific message or a specific silence, and both point at a real cause. This guide lists the errors agencies most often hit — quoted exactly as they appear on screen — with the underlying cause and the fix, so you can match what you are seeing and resolve it without guesswork.
Each section covers one area of the platform. Scan for the message you are seeing, or use the silent-failure sections (auto-respond, email delivery) when something simply stops working without an error.
The messages are quoted verbatim on purpose: if the text on your screen matches a row here, the cause and fix in that row apply — no interpretation needed.
Payments and account lock (your agency subscription)
These errors relate to your own agency subscription, not your customers' billing. When your subscription or trial lapses, the platform locks navigation but deliberately keeps billing reachable so you can always fix it yourself.
| Symptom | Cause | Fix |
|---|---|---|
| `Navigation Locked` overlay with `Your account is locked due to non-payment...` | Your agency has no active subscription or trial | Click `Restore Access` — it opens the payment modal. While locked, `Resources -> Account` stays clickable, so billing is always fixable |
| `Your card was declined...` (or a specific CVC / insufficient funds message) | Your bank rejected the charge — the message maps to the actual decline reason | Fix the stated problem (correct the CVC, add funds, or use a different card) and retry |
| `Additional authentication is required. Please complete the authorization.` | Your bank requires 3D Secure confirmation | Complete the authorization in the popup your bank presents. If you dismiss it, the payment stays incomplete even though it looked submitted. You get up to 3 retries per session |
| `Action Required: Payment Overdue` banner | A renewal payment failed on your saved payment method | Update the payment method via `Manage Subscription`, which opens the Stripe billing portal |
The 3DS case is the sneakiest: the payment form looked submitted, but until you complete your bank's authorization prompt in the popup, the payment stays incomplete. If access does not restore after paying, check whether a 3DS popup was dismissed and retry — you get up to 3 retries per session.
Sales Intelligence search errors (DataForSEO)
Sales Intelligence searches run on your own DataForSEO credential. When a search fails with a mapped message, the message itself tells you what to do. When it fails with the generic message, the failure was unmapped or internal — check the credential's last error in Sales Intelligence settings for the real reason.
Credentials are deliberately never disconnected on failures, so a failing key stays in place for you to inspect and fix rather than silently vanishing.
| Symptom | Cause | Fix |
|---|---|---|
| `An error occurred while searching. Please try again.` | An unmapped or internal failure | Check the credential's last error in Sales Intelligence settings — that shows the underlying reason |
| `Your search credits have run out.` | The DataForSEO account balance is empty | Top up credits on dataforseo.com |
| `Your server's IP address needs to be authorized.` | The DataForSEO account restricts API access by IP | Whitelist the server IP in your DataForSEO account settings |
| `You've reached your daily search limit.` | The daily search cap has been hit | Wait for the limit to reset, or raise the limit |
| `The location data needs to be refreshed.` | The location string could not be resolved | Retry with a 'Dallas, TX' style location format |
| `Test Connection` passes but real searches fail | The connection test only checks authentication, not the paid search endpoints — commonly a brand-new DataForSEO account that has not finished DataForSEO's own activation steps | Finish account setup on dataforseo.com and add credits, then search again |
| Search sits pending, then shows `Search timed out...` | The search returned nothing, so it shows as still-pending until it times out | Check the credential's last error and the DataForSEO account, then retry |
| A prospect on your public lead-capture form reports `We could not search for businesses right now. Please try again in a moment.` | Any underlying search failure — the public form deliberately never shows prospects the real error | Diagnose from your own account: run the same search there and read the actual error |
A low DataForSEO balance shows passively in the workspace header — there is no alert email, so make a habit of watching it.
OpenRouter and AI provider errors
AI features (auto-respond, AI reply suggestions, AI Insights) run on the AI provider configured at `Platform -> AI & Automation -> Artificial Intelligence`. The failures below are the ones agencies actually hit — and the most dangerous one is silent: live auto-respond shows no banner when OpenRouter fails.
| Symptom | Cause | Fix |
|---|---|---|
| `The AI model configured for your AI provider is no longer available on OpenRouter...` | The configured model was retired or renamed on OpenRouter (e.g. old Claude 3.5 ids) | Edit the provider at `Platform -> AI & Automation -> Artificial Intelligence` and pick a current model — the wizard now blocks retired ids |
| `OpenRouter rejected the saved API key...` | The key was pasted with a `Bearer ` prefix or hidden whitespace | Re-paste just the key itself (it starts `sk-or-`) |
| `Your OpenRouter account has insufficient credits...` | The OpenRouter balance is empty | Top up at openrouter.ai |
| Auto-respond replies simply stop, with no banner or error anywhere | Live auto-respond has no banner for OpenRouter credit or model failures — replies silently stop | Check the rule's `Activity` log for error rows, then fix the provider (credits or model) |
| `No AI provider with a valid API key found. Please configure your AI provider in Settings.` | No AI provider is configured, ready, and set as default | Configure a provider and make sure it completes setup and is the default |
Failed AI Insights attempts still consume the daily analysis cap, so fix the provider before retrying analyses.
Email provider errors
The single most important rule: a provider only sends once its setup wizard completes to ready. A half-finished wizard silently falls back to a non-working default — which is the usual cause of customers reporting that password reset emails return an error, and of campaign emails never arriving. Always finish the wizard until the provider shows ready, then set it as the default.
| Symptom | Cause | Fix |
|---|---|---|
| Microsoft 365 error mentioning `5.7.139` or `SmtpClientAuthentication is disabled` | The M365 tenant has Authenticated SMTP disabled for the mailbox — an app password cannot fix this | The M365 admin must enable it: `Set-CASMailbox -Identity "user@domain" -SmtpClientAuthenticationDisabled $false` |
| Gmail: `Authentication failed. Make sure you're using a Gmail App Password...` | The regular account password was used instead of an App Password | Generate a Gmail App Password and use that — never the account password |
| Brevo or SendGrid: `Invalid API key. Please check your key and try again.` when the key IS correct | An IP allow-list on the provider account is blocking EMR's sending server | Add EMR's sending server IP `49.13.0.216` to the provider's allow-list |
| SendGrid key verifies but sending fails with a restricted key | The restricted key is missing required permissions | Grant `Mail Send`, `Mail Settings` and `Tracking` at Full Access |
| Postmark: `Failed to create domain` | The domain conflicts on Postmark's side — often already registered at the root | Try a subdomain, or resolve the conflict inside Postmark |
| Customers report `password reset emails return an error`, or campaign emails never arrive, with no provider error shown | The email provider wizard was never completed to ready, so sending silently fell back to a non-working default | Re-open the wizard, finish every step until the provider shows ready, and set it as the default |
When email "just doesn't work" with no visible error, check provider readiness first — a provider that shows anything other than ready is not the one doing the sending.
Google and Facebook review source errors
Source cards carry status badges that each mean something specific — read the badge before anything else, because it usually tells you exactly which of the fixes below applies.
| Badge | Meaning | Fix |
|---|---|---|
| `Auth needed` | The token expired or was revoked | Click `Re-authenticate` |
| `Action needed` | A permission problem on the connected account | Fix the permission (see the rows below), then reconnect |
| `Limit reached` | The plan's Review Source Limit is hit | Raise the plan's Review Source Limit |
| `Upgrade` | The source is not included on the current plan | Upgrade the plan or use a plan that includes it |
| `Setup needed` | The connection was started but never finished | Open the source and complete the connection flow |
| `Coming soon` | The source is not yet supported | Wait — no action available yet |
Google connection and permission errors
- Re-auth behavior differs by platform: Google always returns you to the location picker — your data is kept, just re-confirm the profile
- Facebook re-auth self-heals and re-syncs automatically when it can, so a Facebook `Auth needed` often resolves itself after re-authentication
| Symptom | Cause | Fix |
|---|---|---|
| `To connect Google you must allow the "See, edit, create and delete your Business Profile" permission. Please try again and leave that box ticked.` | The Business Profile checkbox was unticked during Google consent — a token refresh can never fix this, because refreshes preserve the original scopes | Reconnect and leave the Business Profile permission box ticked |
| Reviews banner: `Google isn't sharing reviews for this profile yet: ... needs Owner or Manager access` | The connected Google account lacks Owner or Manager access on the listing | Fix the role at business.google.com, then reconnect |
| Insights banner: `We're unable to retrieve performance insights...` | Same cause — the connected account lacks Owner or Manager on the listing | Fix the role at business.google.com and reconnect; insights appear within ~24h |
| Auto Respond never fires on a source, with no error | Auto Respond only works on Grant Access connections (`api` connected) — Public Access sources never auto-respond, silently | Reconnect the source with Grant Access |
White-label and custom domain errors
Domain problems almost always come down to DNS records that were left behind. The platform expects exactly one A record for the hostname — anything else on the same name, especially an AAAA record, is the classic reason a domain never verifies or never gets its certificate.
| Symptom | Cause | Fix |
|---|---|---|
| The root domain redirects to the login page | No website page is published at the `/` slug | Restore a homepage in the Website builder |
| Custom domain never verifies or never gets SSL | Leftover DNS records — a stray AAAA record alongside the A record is the classic failure | Point one A record to `178.105.206.57` and DELETE any other A/AAAA records for the hostname; Cloudflare must be DNS-only during setup |
| Domain verified but no SSL yet | SSL issues automatically on the first HTTPS visit after verification | Visit the domain over HTTPS once; if it still fails, check for leftover AAAA records |
| Blank page after connecting Google or Facebook | No primary domain is set on your account, so the callback has nowhere to land | Set a primary domain under `Platform -> White-Label -> Domains`, then reconnect |
| Favicon upload appears to do nothing | The file was rejected — it must be `.ico` or `.png` and under 1MB; the preview clears on rejection | Check the file type and size, then upload again |
If the domain sits behind Cloudflare, keep the record DNS-only (grey cloud) during setup — proxying it before verification completes is a common reason the domain never verifies.
AI Insights errors
AI Insights runs share the same AI provider as auto-respond, so a broken provider fails analyses too — and because failed attempts count toward the daily cap, a broken provider can burn a whole day's attempts in minutes.
| Symptom | Cause | Fix |
|---|---|---|
| `Daily attempt limit reached (3/3). Please try again tomorrow.` | A configured cap of 3 analyses per organization per day — failed and in-progress attempts count toward it | Fix the AI provider BEFORE retrying, so failures do not burn the cap |
| `Not Enough Reviews` | The selected period has fewer than 5 text reviews | Widen the period or wait until at least 5 text reviews exist |
| `Analysis timed out...` | A stuck run auto-fails after ~10 minutes | Retry once the AI provider is healthy |
Auto-respond silent skips
When 'auto-respond does nothing', there is usually no error at all — the review was skipped by design. Check these conditions in order before suspecting the AI provider.
| Symptom | Cause | Fix |
|---|---|---|
| No reply sent, no error shown | The review is older than 2 days | Expected — auto-respond only handles fresh reviews; reply manually or use a bulk `Old Reviews` run |
| No reply sent, no error shown | The review already has a reply | Nothing to fix — already-replied reviews are always skipped |
| No reply sent, no error shown | The review source is not Google or Facebook | Expected — only Google and Facebook support auto-respond |
| No reply sent, no error shown | The connection is Public Access instead of Grant Access | Reconnect the source with Grant Access |
| No reply sent, no error shown | The customer's plan lacks Auto-Responding | Add Auto-Responding to the customer's plan |
Bulk `Old Reviews` runs are different: they record per-review outcomes in the progress modal (e.g. `Review already had a reply`, `Connection can't post replies`, `Plan doesn't include auto-respond`, `AI couldn't write a reply`). The bulk button only exists on rules scoped to a specific organization.
Login and access errors
Two access errors come up repeatedly during team and customer onboarding, and both look worse than they are.
| Symptom | Cause | Fix |
|---|---|---|
| `419 | Page Expired` | The page sat open too long and the session token expired | Refresh the page and retry the action. If it recurs on a custom domain, that suggests a cookie/domain mismatch worth reporting |
| Invite link shows `The email has already been taken.` | The person already has an account and used the register link from the invitation | The invitation email also contains an accept link for existing accounts — use that one; it routes existing users to sign-in and joins them |
A one-off `419 | Page Expired` is normal and harmless — a stale tab, not a bug. It only becomes worth reporting when it keeps happening on a custom domain.