Incident-pattern library

The failures that actually take no-code apps down

An incident pattern is a recurring production failure described from the symptom inward: what you see, the root cause in plain English, the steps that fix it, and the check that catches it automatically next time. Every pattern here comes from incidents diagnosed on real no-code and AI-built apps — anonymized and verified — so you can fix the problem now and stop rediscovering it later.

Platform
Flow

25 of 25 patterns

Which no-code failure pattern matches your symptom?

Filter by platform or flow, then open the pattern that sounds closest to what users reported. Each page explains the likely root cause, the fix steps, and the monitoring check that catches the same failure automatically.

  • Any stack
  • Bubble
  • Lovable
  • Bolt
  • Webflow
  • Checkout & payments
  • Webhooks

Customer paid, success page loaded, order never created

The charge is there in Stripe and the customer reached your success page, but their account was never upgraded and no order row exists. It works every time you test it and fails for a fraction of real customers.

  • Supabase
  • Lovable
  • Bubble
  • Any stack
  • Auth & login
  • Email delivery

Magic-link login emails not arriving

A user types their email, the app says "check your inbox", and nothing arrives — not even in spam. It often works for your own address but fails for real users.

  • Lovable
  • Bolt
  • Bubble
  • Any stack
  • Checkout & payments

Checkout page loads blank after a deploy

The homepage works and uptime says everything is green, but the checkout or payment page renders blank, half-empty, or stuck on a spinner — usually starting right after a deploy.

  • Bubble
  • Lovable
  • Bolt
  • Checkout & payments
  • Webhooks

Stripe test keys shipped to production

Checkout appears to work — sometimes a test card even succeeds — but no real payouts arrive, real cards get declined, or the Stripe dashboard shows zero live activity while your app claims sales.

  • Bubble
  • Supabase
  • Any stack
  • Webhooks

Webhook returns 200 but nothing happens

The sender's dashboard (Stripe, Typeform, GitHub…) shows every delivery succeeding with a 200 — but the order isn't created, the record isn't updated, the notification never goes out.

  • Supabase
  • Lovable
  • Bolt
  • Auth & login

Supabase queries return empty after enabling RLS

Lists and dashboards that worked in development render empty in production. The table has rows in the Supabase dashboard, the network tab shows 200 responses — but every select comes back with zero rows.

  • Lovable
  • Checkout & payments
  • Auth & login

Lovable API calls fail after publish

Everything works in the Lovable preview, but the published app fails: API calls return 401/403/500, third-party integrations are dead, or features behave as if their API keys vanished.

  • Any stack
  • Webflow
  • Lovable
  • Bolt
  • Replit
  • Checkout & payments
  • Forms & leads

Users still see the old version after a successful deploy

The deploy succeeded and looks right in a private window, while other people still see yesterday's app. Some report a blank screen or missing styling instead, and a hard refresh fixes it for whoever tries it.

  • Supabase
  • Lovable
  • Bolt
  • Webhooks
  • Scheduled jobs

Supabase: "Max client connections reached"

Under load — or seemingly at random — requests start failing with "Max client connections reached" or timeouts. A restart clears it, traffic brings it back, and the database itself doesn't look busy.

  • Supabase
  • Lovable
  • Bolt
  • Auth & login
  • Forms & leads

Supabase: project paused after a quiet week

Every database-backed page starts failing at once after a period of low traffic. Sign-in breaks, lists come back empty, and the dashboard shows the project as paused rather than reporting an error in your code.

  • Bubble
  • Supabase
  • Replit
  • Any stack
  • Scheduled jobs

Scheduled job stopped running and nobody noticed

Digests stop sending, syncs drift stale, cleanup never runs — and you find out days later from a customer. The scheduler dashboard shows nothing obviously wrong.

  • Bubble
  • Scheduled jobs

Bubble: recursive workflow stops after one failed run

A recursive workflow starts correctly, works through part of the list, then stops for good. The scheduler is empty, no error is surfaced anywhere a user would see, and the remaining records are simply never processed.

  • Any stack
  • Bubble
  • Lovable
  • Bolt
  • Replit
  • Webhooks
  • Scheduled jobs

A third-party API returns 429 and features quietly stop

A feature that depends on an outside service works, then stops for a stretch, then works again. Nothing is deployed in between, no page errors, and the affected records simply have missing data where the integration should have filled it in.

  • Any stack
  • Bubble
  • Webflow
  • Email delivery

Transactional emails land in spam

Receipts, password resets, magic links, or notifications reach some users' spam folders — or vanish entirely. Deliverability quietly worsens as you send more.

  • Any stack
  • Bubble
  • Lovable
  • Bolt
  • Replit
  • Auth & login
  • Email delivery

Reset link says expired or already used on the first click

A user requests a reset, opens the email, clicks once, and is told the link has expired or has already been used. Requesting another produces the same result, and it happens consistently for some users and never for others.

  • Webflow
  • Bubble
  • Any stack
  • Forms & leads
  • Email delivery

Form shows success but no lead arrives

Visitors fill in the form and see the success message, but nothing lands in your inbox, CRM, or sheet. You usually discover it by accident — days or weeks of leads are simply gone.

  • Supabase
  • Bubble
  • Any stack
  • Auth & login
  • DNS & SSL

OAuth redirect mismatch after a domain change

"Sign in with Google/GitHub" stopped working right after moving to a custom domain (or adding www, or switching to https). The provider shows redirect_uri_mismatch, or users bounce back logged out.

  • Any stack
  • Lovable
  • Bolt
  • Replit
  • Auth & login
  • Forms & leads

CORS error in production but not on the preview URL

The app is fine on its platform-issued preview address and broken on the real domain. The console shows a blocked cross-origin request, the network tab shows a failed preflight, and pages that need data render empty.

  • Webflow
  • Bubble
  • Any stack
  • DNS & SSL

DNS cutover left the site half-broken

After moving hosts or domains, behavior depends on who's looking: some visitors get the new site, some the old one, some a certificate warning or a hosting provider's default page. It "works on your machine" while support tickets disagree.

  • Any stack
  • Webflow
  • Replit
  • DNS & SSL

SSL certificate expired on an API subdomain

The main site is fine, but api.yourdomain.com (or app., or admin.) suddenly throws certificate errors — browsers show warnings and every API client starts hard-failing at once.

  • Replit
  • DNS & SSL
  • Scheduled jobs

Replit app keeps going to sleep on its custom domain

Your Replit-hosted app is unreachable or painfully slow on the first visit after a quiet period — then fine. Webhooks time out, background tasks miss their windows, and it always works once you go look.

Newsletter

Get new incident patterns as we publish them

One email when new failure patterns, fixes, and monitoring recipes for no-code and AI-built apps land. No fluff, unsubscribe any time.

Double opt-in. One-click unsubscribe. No spam, ever.

How should you use these incident patterns?

What is an incident pattern?

An incident pattern is a recurring production failure documented by symptom, root cause, fix steps, and the monitoring check that catches it next time.

Which apps does the library cover?

The library covers Bubble, Lovable, Bolt, Replit, Webflow, Supabase, and adjacent no-code or AI-built apps where failures usually happen between platforms and integrations.

What should I do after fixing the issue?

Add the recommended Nightlamp check from the pattern page so the same failure is caught automatically before a customer reports it.