Partly fixable yourself. One config file, then redeploy.
- How serious
- Medium
- Fix it yourself?
- Partly, some steps need a developer
- Typical cost
- €99–$990 for a single fix (prices)
- Top rated for Bolt
- Afterbuild Labs · 10.0/10
What you see. Clicking around works, but refreshing a page or opening a shared link shows Page not found or 404.
Why it happens
Apps built with Bolt, Lovable and many Vite templates are single page apps. There is one real file, index.html, and the JavaScript inside it swaps screens as you click. The address bar changes to /dashboard, but no file called dashboard exists on the server. When you refresh or share that address, the host looks for the file, finds nothing, and returns 404.
Hosts need a rule that says serve index.html for every path and let the app handle routing. Netlify reads it from a _redirects file or netlify.toml. Vercel reads a rewrite from vercel.json, and warns that a wrong Framework Preset or an uncommitted config file also causes every page to 404. Next.js apps from v0 do not have this problem, because each route is a real page.
Fix it yourself
- Confirm the type of app. If the project has a
vite.configfile and noapporpagesfolder, it is a single page app and needs a rewrite rule. - Netlify: create a file named
_redirectsin the publish directory, usually via thepublicfolder so it is copied intodist, containing one line:/* /index.html 200. - Vercel: add
vercel.jsonat the repository root with a rewrites entry sending/(.*)to/index.html. Commit it, since Vercel ignores files that are not in Git. - If your app also has an
apifolder, exclude it from the rewrite as Vercel's guide shows, or API calls will return the HTML page. - In Vercel, check Settings → Framework Preset is Vite, not Other. Redeploy and test a deep link in a private window.
- Bolt publishes to its own host or Netlify. Ask Bolt to add the Netlify redirect file, then publish again.
When to get an engineer
Hire when the 404 persists after the rule, when the app mixes server routes and client routes, or when the host is a VPS or Docker setup without these conventions. Send the engineer the repo, the host name and one failing URL. This is a quick single fix at the low end of €99–$990, often under a day. See the launch checklist for other go-live items.
Top-rated companies for Bolt apps
Ranked by our score: published prices, scope of work, AI tools named, timing and a low-risk first step. How we score.
- 1Afterbuild Labs10.0/10Best for: A check before launchFree first step · from $49
- 2Redlab10.0/10Best for: A full rescue by one team that keeps buildingFree first step · from $490
- 3Vibe Code Rescue (Lev Arakelyan)9.0/10Best for: A one-off check and a cleanupFrom $299
Check these
Key pages load fast on a phone
Run PageSpeed Insights on the home page and the main app screen, on mobile.
Errors reach you before users do
Add error monitoring and uptime alerts. If you learn about outages from customers, this is missing.
The code lives in a Git repository you own
Connect GitHub or export the project. If the builder account is lost, the product should not be.
Questions
Why does it work when I click but not when I refresh?
Clicking is handled by JavaScript already loaded in the page. Refreshing asks the server for that path directly, and without a rewrite rule the server has no such file.
Will the rule break my API or images?
A catch-all rewrite can swallow API paths. Vercel's guide shows how to exclude api/ from the rule. On Netlify, a rewrite without the force option does not override files that exist.
Sources: Netlify: Page not found error guide; Netlify: Redirects and rewrites; Vercel: Why is my deployed project giving a 404.
