---
title: "Form submits but nothing happens"
description: "A form that submits with no error and saves nothing is usually a blocked insert the code never reports. How to check the request, the policy and the logs."
url: https://whocanfixmyapp.com/problems/form-submits-but-nothing-happens
---

[Home](https://whocanfixmyapp.com/) / [Problems](https://whocanfixmyapp.com/problems) / [Screens and forms](https://whocanfixmyapp.com/problems#screens-and-forms)

# Form submits but nothing happens

VC-54 · Lovable · Bolt · Supabase · Updated October 2026 · By [Nathaniel Kelley](https://whocanfixmyapp.com/authors/nathaniel-kelley)

Quick verdict

Partly fixable yourself. Often an access rule you can fix in the Supabase dashboard.

- **How serious**: High
- **Fix it yourself?**: Partly, some steps need a developer
- **Typical cost**: $49–$800 one-off check, or €99–$990 for a single fix ([prices](https://whocanfixmyapp.com/pricing))
- **Top rated for Lovable**: [Afterbuild Labs](https://whocanfixmyapp.com/companies/afterbuild-labs) · **10.0**/10

**What you see.** You press Save, the button spins or resets, no error appears, and the data never shows up in the database.

## Why it happens

The Supabase client does not throw when a save fails. It returns an object with `data` and `error`. AI-built forms often take the data, never look at the error, and reset the form as if it worked. So the user sees success and nothing is stored.

The most common error behind it is row level security, the per-table access rules. Once RLS is on, nothing is readable or writable through the API until a policy allows it. An insert without a matching policy fails with code 42501, new row violates row-level security policy. Other causes are a required column the form does not fill, a table that was renamed, or a user who is not actually signed in so `auth.uid()` is empty. Reads blocked by a policy return zero rows without any error, so a save can also work and then be invisible.

## Fix it yourself

1. On the live site press F12, open **Network**, submit the form, and click the request to `rest/v1/yourtable`. 401 or 403 means an access rule, 400 a column problem, 201 means it saved.
2. In Supabase open **Table Editor** and look for the row. Then open the table's **Policies**. If there is no INSERT policy for signed-in users, add one with the check `auth.uid() = user_id`.
3. Open **Logs** and pick **API Gateway** and **Postgres** to read the exact error text around the time you submitted.
4. Ask your builder: **After every insert, update and delete, check the error object and show its message to the user. Never reset the form before the save succeeds.**
5. Confirm the live site uses the same Supabase URL and publishable key as the preview, in your host's environment settings.
6. If the error names a policy, use [our RLS insert page](https://whocanfixmyapp.com/problems/supabase-rls-blocking-insert). If the row exists but never shows, see [data saves but never shows up](https://whocanfixmyapp.com/problems/data-saves-with-no-error-but-never-shows-up).

## When to get an engineer

Get an engineer when several forms fail, when you cannot tell which table the form writes to, or when adding a policy makes other users see each other's rows. Tell them the table name, the request status from the Network tab, and whether the row appears in the Table Editor. A one-off check is $49–$800 and a single fix is €99–$990, about two days. Ask them to add error messages to every form while they are in there.

## Top-rated companies for Lovable apps

Ranked by our score: published prices, scope of work, AI tools named, timing and a low-risk first step. [How we score](https://whocanfixmyapp.com/methodology#score).

- 1 · [Afterbuild Labs](https://whocanfixmyapp.com/companies/afterbuild-labs) · **10.0**/10 · Best for: A check before launch · Free first step · from $49
- 2 · [Redlab](https://whocanfixmyapp.com/companies/redlab) · **10.0**/10 · Best for: A full rescue by one team that keeps building · Free first step · from $490
- 3 · [Vibe Code Rescue (Lev Arakelyan)](https://whocanfixmyapp.com/companies/vibe-code-rescue-lev-arakelyan) · **9.0**/10 · Best for: A one-off check and a cleanup · From $299

[All 59 Lovable companies, ranked](https://whocanfixmyapp.com/best/lovable-developers)

## Check these

DATA-01 · Critical

Access rules are on for every table

In Supabase, open Table Editor: every table should show RLS enabled, with at least one policy. In Firebase, your rules should never say `allow read, write: if true`.

DATA-03 · Critical

One user cannot open another user's records

Sign in as user A, copy a request from the Network tab, and change the record ID to one that belongs to user B. You should get an error or an empty result.

PAY-03 · High

Input is validated on the server

Forms that only check input in the browser accept anything sent directly to the API.

OPS-03 · High

Errors reach you before users do

Add error monitoring and uptime alerts. If you learn about outages from customers, this is missing.

## Questions

### Can I just turn RLS off to make the form work?

No. With RLS off anyone with your public key can read and change the whole table. Add a policy for the action you need instead.

### Why did it work in the builder's preview?

You were probably testing while signed in as the owner, or the preview pointed at a different project where the policy existed.

Sources: [Supabase: row level security](https://supabase.com/docs/guides/database/postgres/row-level-security); [Supabase: logs](https://supabase.com/docs/guides/telemetry/logs); [Lovable: troubleshooting](https://docs.lovable.dev/tips-tricks/troubleshooting).

**Lovable guide**

What Lovable builds, where it breaks and how to check it: [Lovable app rescue: what breaks and how to check it](https://whocanfixmyapp.com/guides/lovable).

**Same category**

- [CORS error only on the live site](https://whocanfixmyapp.com/problems/cors-error-only-on-the-live-site)
- [Hydration error after deploy](https://whocanfixmyapp.com/problems/hydration-error-after-deploy)
- [Looks fine on desktop, broken on phones](https://whocanfixmyapp.com/problems/looks-fine-on-desktop-broken-on-phones)
- [Images and files not loading after deploy](https://whocanfixmyapp.com/problems/images-not-loading-after-deploy)
- [App is stuck on a loading spinner](https://whocanfixmyapp.com/problems/stuck-on-a-loading-spinner)

[All screens and forms problems](https://whocanfixmyapp.com/problems#screens-and-forms)

**Run every check**

The [production checklist](https://whocanfixmyapp.com/checklist) has all 24 checks with a verdict.
