How to Fix No Output Directory named "public" found after the Build completed
Error message
Error: No Output Directory named "public" found after the Build completed.
If you're seeing "No Output Directory named "public" found after the Build completed", you're not alone. Here's what it means, why it happens, and the steps to resolve it.
What this error means
Vercel finished your build but couldn't find the static folder it expected to deploy. Either your framework wasn't detected or it outputs to a different folder.
Why this happens
Vercel defaults the output to `public` for static projects. If you're using Next.js, Vite, Astro, etc., the real output directory is different (e.g. `.next`, `dist`, `build`), and the project's framework preset is wrong or overridden.
Step-by-step fix
Open your Vercel project → Settings → Build & Development Settings.
Set the Framework Preset to match your project (Next.js, Vite, Astro, etc.) and clear any manual Output Directory override unless you really need one.
If you actually use a custom build, set Output Directory to the real folder your build produces (e.g. `dist`).
Trigger a new deployment.
commandgit commit --allow-empty -m 'redeploy' && git push
Affected products
Vercel
Still broken? Try these
- Check the build log: the last lines usually show where files were emitted.
- Confirm your `package.json` build script actually produces output in the directory you configured.
- If using a monorepo, set the correct Root Directory in Vercel project settings.
Related errors
Frequently asked questions
What does "No Output Directory named "public" found after the Build completed" mean?
Vercel finished your build but couldn't find the static folder it expected to deploy. Either your framework wasn't detected or it outputs to a different folder.
What causes "No Output Directory named "public" found after the Build completed"?
Vercel defaults the output to `public` for static projects. If you're using Next.js, Vite, Astro, etc., the real output directory is different (e.g. `.next`, `dist`, `build`), and the project's framework preset is wrong or overridden.
How do I fix "No Output Directory named "public" found after the Build completed"?
1. Open your Vercel project → Settings → Build & Development Settings. 2. Set the Framework Preset to match your project (Next.js, Vite, Astro, etc.) and clear any manual Output Directory override unless you really need one. 3. If you actually use a custom build, set Output Directory to the real folder your build produces (e.g. `dist`). 4. Trigger a new deployment. Always test changes in a non-production environment first.
Browse more errors in Vercel: Fix Vercel deployment errors. Build failures, missing output directories, exceeded build duration, missing env vars, and module resolution issues. Or paste your own error into the error decoder tool to find a match. You can also go back to the homepage to browse common errors by topic.