Docs
Troubleshooting
Sign-in link failures, degraded or stuck valuations, quota errors, billing questions, and how to reach support.
The fastest way through most problems is to read the reason field on the response, not the HTTP status. Every error payload also carries a request_id — include it if you contact support, because it lets us find your exact request in the logs.
Sign-in and verification links
"Account sign-up isn’t open yet." Sign-in sits behind a server-side launch flag that is checked before anything else on a sign-in-link request. While it is closed, every request for a link returns this message and no email is sent — that includes existing account holders, not only people creating an account for the first time. If you already have an account and see this, nothing is wrong with your account; the flag is closed. The anonymous valuation path keeps working without an account.
"Too many sign-in attempts. Please try again in a few minutes." Sign-in requests are rate limited per IP address, because each accepted request sends a real email. Wait for the window shown in the Retry-After header and try once more. Repeating the request faster does not help.
"Bot check failed. Please refresh and try again." The login form runs a bot check before any email is sent. Refresh the page so the check reloads, then submit again. Blocking third-party scripts or running an aggressive privacy extension can keep the check from completing.
"That sign-in link could not be completed. Start again on this device." Sign-in links are device-bound. A link opened on a different device or browser than the one that requested it fails. Request a fresh link from the device you actually want to sign in on, and do not forward links between devices.
No email arrived. Check spam, then request a fresh link. Each new request invalidates nothing on your account, so retrying is safe once the rate-limit window passes.
Valuation problems
The run failed with a 502. The reason tells you which of three distinct failures happened:
| Reason | What happened | What to do |
|---|---|---|
blocked | The target site refused our request | Nothing on your side is wrong; try later or value the bare domain |
unreachable | The target could not be reached at all | Check the URL resolves publicly; retry |
too-thin | No measurable traffic on a paid Standard or Deep run | There is not enough data for a business valuation; try a Quick run, or resubmit through Website & SEO valuation |
A Quick run never attempts a traffic pull — on any tier, free or paid. When it finds no readable site content at all, it falls back to a bare-domain (Mode C) valuation instead of erroring. too-thin can only happen on a paid Standard or Deep run, which does attempt a traffic pull.
A social or creator page shows "needs verified signals" instead of a number. No provider in the chain resolved public signals for that handle, so the run came back fully degraded. A degraded run is refunded — it does not cost quota. Check the handle spelling, then try again later. For TikTok, Instagram, X, and Facebook you can also supply the numbers yourself through the overrides field described in What you can value.
The band is very wide, or confidence reads LOW. Confidence measures how many signals were actually collected, and each missing signal widens the band. Read the "What we did not include" section of the Memo to see exactly what was missing. Signing in without upgrading does not add data sources — an anonymous run and a signed-in free run pull the identical evidence. Also note that every free run uses the Quick depth, whose band tops out at 35% (LOW), so a paid Full or Full Diligence run can legitimately show the same asset with higher confidence. Details in Reading your report.
The Memo and Roadmap came back empty. The number never depends on the narration provider. If narration fails, the range still returns with empty memo and roadmap sections; a 504 appears only when narration was required on a paid run and failed. Re-run once the narration provider recovers.
I expected a business valuation and got a domain valuation. The usual cause is that no readable site content came back on a Quick run, which falls back to bare-domain treatment on every tier, free or paid. See "Modes" in What you can value.
My saved report is flagged stale. Cached valuations live for 14 days and are flagged stale in the last 3 days of that window. Re-run the valuation to refresh it.
Quota and rate-limit errors
Read reason first. The main walls:
| Reason | Status | Wall | Resets |
|---|---|---|---|
rate-limited | 429 | Burst guard: 8 requests per IP per minute | Within a minute |
free_daily_ip_cap | 200 | Anonymous: 3 valuations per day | 00:00 UTC |
free_signed_in_monthly_cap | 200 | Free account website runs per month | First of next month, UTC |
tier_lite_cap | 429 | Paid account's monthly Quick-valuation (Lite) allowance used up | First of next month, UTC |
tier_standard_cap | 429 | Paid account's monthly Full-valuation (Standard) allowance used up | First of next month, UTC |
tier_deep_cap | 429 | A paid plan's monthly Full Diligence (Deep) allowance used up — after 3 on Basic, after 25 on Pro. Only Pro's path tries a $1.49 PAYG credit first; credits are Pro-only | First of next month, UTC |
standard_requires_upgrade / deep_requires_upgrade | 403 | Caller explicitly requested a Full valuation or a Full Diligence Valuation their plan does not carry at all: Free or anonymous, either run type | Not a quota — a tier gate |
ecommerce_requires_basic | 403 | Store valuations need Basic or Pro | Not a quota — a tier gate |
Two things trip people up:
- On the main website surface (
/api/value), quota denials return HTTP 200 withallowed: falsein the body. Branch onallowedandreason, not the status code. - Every valuation response carries
x-quota-limit,x-quota-remaining, andx-quota-resetheaders. Read them to see the wall coming instead of hitting it.
A run that fails before producing a usable response, or that comes back fully degraded, refunds its quota reservation. Refunds are capped per day and per month, so forced failures cannot mint extra attempts.
If you got a 503 with AUTH_UNAVAILABLE, nothing is wrong with your quota or your plan — the account lookup itself failed transiently. Retry the request.
MCP and API errors
MCP JSON-RPC outcomes normally answer HTTP 200; the outcome is in the body. An untrusted browser Origin is rejected with HTTP 403, and an attempted SSE-resume GET gets HTTP 405 because the hosted facade is stateless. The JSON-RPC codes you are most likely to see:
| Code | Meaning | Fix |
|---|---|---|
-32001 | Key missing, malformed, revoked — or valid but not on a Pro account | Create a key on a Pro account and send it as Authorization: Bearer |
-32003 | Over 5 requests per second | Honour the retry-after header |
-32004 | Monthly allowance for that run kind is used up | Wait for the UTC month to reset |
-32005 | A valuation or account-data query failed upstream | Retry shortly; if it persists, contact support with the request time |
The full method-by-method contract is in MCP and agent access.
Billing and upgrades
I paid, but my account still shows Free. Your tier is stamped when Stripe confirms payment, and the return trip to /checkout/success claims the checkout session and links on to the workspace on the new plan immediately. If you closed the tab right after paying, just open /dashboard — the webhook has already stamped the tier. If it still shows Free after a reload, contact support with the approximate payment time.
My card payment failed. A failed retry (past_due) keeps your paid tier during the dunning grace window. Fix the payment method in the Stripe Customer Portal at /account/billing and the subscription continues; a subscription that ends drops the account to Free.
/account/billing returns a 404. That route only works for accounts with a Stripe subscription record. If you have never subscribed there is nothing to manage there.
Cancelling. Cancel from the Stripe Customer Portal at /account/billing. When the subscription status changes to canceled, the account drops to Free.
Refunds. Refunds are governed by § 9 of the Terms of Service, which is the authority — this page does not restate or summarise that section. Send refund enquiries through the contact form, referencing the original purchase and the reason.
Contacting support
Use the contact form for privacy requests, accessibility issues, refund requests, and product feedback. Most requests are acknowledged within two business days.
Two things support will not do, so you do not wait on them: individualized financial, legal, or investment advice, and manual valuations on request. The estimate you see is the estimate the engine computed.
When you write in about a failed request, include the request_id from the error payload and the approximate time. That is the difference between "found it in one query" and "please describe everything again".
