Troubleshooting
The failures we see most often, and what to do about them. For setup-time issues, start at the relevant Getting Started page. This page is for things that worked once and stopped, or stuck states.
Report generation
My report is stuck on "Generating…"
A report that's been generating for more than 90 seconds is almost always one of:
- Anthropic API hiccup. The worker retries transient errors automatically. Wait two minutes, then refresh.
- Long-running quota check. Reload the page — the row will show the current state. If it's flipped to FAILED, your quota auto-refunded.
- Process killed. Rare on Railway, but a redeploy mid-generation can leave the row stuck. Click Regenerate to start a fresh pass; the old row stays as audit history.
If a report is stuck for >5 minutes, Regenerate is always safe.
Why does my report show "Failed"?
Common causes:
AI reports are not configured on this server.— yourANTHROPIC_API_KEYis missing in the operator's environment. If you self-deploy, set it; if you're on the hosted product, email [email protected].Failed to build funnel snapshot.— usually means the funnel doesn't have any stages or all stages are empty. Confirm the funnel canvas isn't blank, then regenerate.Monthly AI report quota reached.— you've used your monthly allotment. Quota resets the 1st of the month UTC.
My score is 30 and the report is mostly setup advice
That's the model telling you it can't see your funnel. The score caps at 30 when tracking isn't installed and at 50 when Stripe isn't connected. Install tracking and connect Stripe, then regenerate.
Automations
My automation is ACTIVE but no runs are showing
Things to check, in order:
- Trigger source. A
subscription_trialautomation only fires when a Stripe subscription entersstatus = "trialing". Form submits or stage-entry events with no Stripe link won't trigger it. See Automations → Triggers. - Profile is unsubscribed or hard-bounced. Workspace-wide suppression cancels automation runs. Check Settings → Email → Suppressions for the recipient.
- Stage's track filter. On a split funnel, the automation is scoped to a specific track. Profiles assigned to a different track won't enroll.
- Existing RUNNING run. If a profile already has an active run on the same automation, re-enrollment is blocked until that run completes or is cancelled.
A run is parked on WAITING_FOR_EVENT forever
WAIT_UNTIL steps park until the named event fires (or the timeout elapses). If the event never comes, the run waits indefinitely up to the timeout. Check the step's configured event and timeout in the editor.
My drip is taking ages to send all steps
The cron tick advances each run by one step every 5 minutes to keep the queue smooth. A 5-step automation with no WAIT blocks still takes ~25 minutes end-to-end. To compress, combine adjacent SENDs into a single SEND step or insert deliberate small WAITs for honesty.
Email & DNS
My email domain shows as "Pending" forever
Verification polls DNS for the four records we generate (MX, SPF, DKIM, optional DMARC). If it's been more than 30 minutes:
- Check your DNS records exactly. Use dig on each record. Common pitfalls: trailing dots, double-quoted TXT records, missing the leading
_on_dmarc. - Verify the host. A record meant for
mail.example.commust be created at the registrar'smailhost, not at the apex. - Wait for propagation. Some registrars (Squarespace, GoDaddy) propagate DNS slowly — up to a few hours.
- Sender domain ≠ apex. If you're sending from
mail.example.com, your apex domain's DMARC policy still affects deliverability. Ap=rejectDMARC at the apex will silently fail your sends until you add a permissive_dmarc.mail.example.comrecord.
Open rates look high but clicks are zero
Apple Mail Privacy Protection (and similar) auto-fetch tracking pixels. That inflates open rates without a corresponding click. Trust click rate over open rate.
Email is going to spam
The most common cause on HOBBY is that you're sending from the shared funnelfizz.com domain and the recipient's corporate filter throttles it. Upgrade to PRO to verify your own domain with DKIM + SPF + DMARC.
For PRO: confirm DMARC alignment, warm the domain gradually (a few hundred sends a day for the first week), and avoid spam-trigger phrases in the subject line.
Tracking
My tracking site won't verify
Three most common causes (also covered in Install tracking → Verify):
- Meta verify tag is outside
<head>. Some CMS templates inject scripts into<body>; the meta tag must be in<head>to count. - Token mismatch. Confirm
YOUR_TOKENwas replaced in both the<meta>tag and the<script>t=query. - Ad-blocker. Disable in your test browser; the snippet honors DNT, so privacy extensions can suppress events.
My CONSIDERATION count looks low
- Are you on FREE? Tracking events are retained 90 days only.
- Did you register at the apex (
example.com) or a subdomain? Subdomain registrations track each subdomain separately. Re-register at the apex if you want to track all subdomains as one site. - Is
data-cookie-domainset on the snippet? Without it,_fn_vidis host-only and a visitor moving fromexample.comtoapp.example.comlooks like two profiles.
identify isn't linking visitors to users
- Check the call ordering.
identifyis queued if the script hasn't loaded yet, but if it's never reaching the queue, the link won't form. userIdis consistent. Don't pass session IDs or per-request UUIDs — pass your durable user identifier.- Network tab. Filter for
trackingand confirm a POST withtype: "identify"actually goes out.
Stripe
CUSTOMER stage shows zero after connecting Stripe
Walk this checklist:
- Did you wait at least 15 minutes? The first sync happens on the next cron tick.
- Are your subscriptions in the right mode (live vs test)?
rk_live_…keys see live data only. - Is the product mapped to the TRIAL/CUSTOMER conversion under Conversion → Stripe Paid → Target products?
- Does the connected key have all seven scopes? Re-paste the key with all seven if not.
Stripe events look duplicated across funnels
If you have multiple funnels in the same workspace and Stripe customers appear under all of them, that's a known accounting issue — each funnel needs its own product mapping under Target products, not just a workspace-level Stripe connection. We're tightening the per-funnel scoping; until then, mapping each funnel to a non-overlapping product list is the workaround.
Still stuck? Email [email protected] with your account email, the funnel URL, what you expected, what you saw, and a screenshot. We usually reply the same day.