IT Error Decoder

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

  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.

    command
    git 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.