system There's another community post with 404 debugging tips that might be helpful. Please give these solutions a try and let us know how it goes. https://community.vercel.com/t/debugging-404-errors/437 A human should be around soon to offer more advice. But you can also get helpful information quickly by asking v0.
Amy Egan There are a lot of possible causes. I hope you were already able to solve it using the tips shared by the bot. If not, it would be helpful to see the site and code to get a better understanding of what's going wrong in this case. Are you able to share a minimal reproducible example or a publicly accessible URL for the site?
CoffeePuma55644 As an additional test, I also removed Bun as the runtime for the build while keeping Bun enabled for the Serverless Functions. The build completed successfully, but every Server Function immediately returned an **Internal Server Error** at runtime. The only configuration that currently works reliably for me is to use **Bun only as the package manager**, while letting Next.js run with the default runtime for both the build and the Serverless Functions. Hopefully this additional information helps narrow down where the issue might be.
Louis Pretty much the same problem here. Since updating to 16.3, \`bun run build\` (1.3.14) fails on my Railway deployment, although it works locally. Reverting back to 16.2.12 fixed the issue
Ryu Hi CoffeePuma55644, Since you reproduced it with a fresh Next.js 16.3 app, I’d treat this as a compatibility issue between Next.js 16.3 and the Bun runtime path, not just your application code. There are two separate things to separate here: ``` Bun as package manager bun install Bun as the runtime used to execute the Next build bun run --bun next build ``` For the Function runtime, Vercel’s Bun config currently uses: ``` { "bunVersion": "1.x" } ``` and Vercel manages the minor/patch version, so I wouldn’t assume you can force Functions specifically onto `1.3.14` from `vercel.json`. For the build/install side, Vercel has a KB article for pinning Bun in the Install Command, so you could try this as a narrow test: ``` bunx bun@1.3.14 install ``` https://vercel.com/kb/guide/how-to-pin-a-specific-bun-version-for-vercel-builds If that still fails during “Collecting page data,” then the issue probably is not just the install-time Bun version. In that case, your current workaround is the one I’d use for production: keep Bun only as the package manager if you want, remove the Bun runtime config, use the normal `next build` path, or temporarily stay on Next.js `16.2.12`. If you can share the minimal repro’s `package.json` scripts and `vercel.json`, that should make it much easier for Vercel/Bun maintainers to confirm whether the failure is in the build runtime, Functions runtime, or the Next.js 16.3 output.
system There's another community post with 404 debugging tips that might be helpful. Please give these solutions a try and let us know how it goes. https://community.vercel.com/t/debugging-404-errors/437 A human should be around soon to offer more advice. But you can also get helpful information quickly by asking v0.
Ryu Hi Solomon, The `Functions` tab only showing `/api/auth/[...nextauth]` is not necessarily a problem by itself. Static App Router pages will not always show up there as functions. The more important signal is the exact 404 type and which URL is returning it. I’d separate three cases: ``` 1. Unique deployment URL returns 404 2. Project/production alias returns 404 3. Only specific app paths like /todo return 404 ``` Can you test the unique deployment URL from the deployment details page, not just the project alias? ``` curl -I https://<deployment-id-or-unique-url>.vercel.app/ curl -I https://<deployment-id-or-unique-url>.vercel.app/todo curl -I https://study-hub-phi-sand.vercel.app/ curl -I https://study-hub-phi-sand.vercel.app/todo vercel inspect <deployment-url> ``` If the unique deployment URL works but `study-hub-phi-sand.vercel.app` returns `DEPLOYMENT_NOT_FOUND`, that points to an alias/routing association issue. If the unique deployment URL also returns Vercel’s platform `DEPLOYMENT_NOT_FOUND`, then that is much stronger evidence that the deployment is not being served at the edge even though the dashboard says Ready. The most useful escalation details would be: ``` deployment URL tested: production alias tested: deployment ID: exact UTC timestamp: x-vercel-id from the 404 page: vercel inspect status/target/aliases: ``` I’d avoid redeploying repeatedly for now unless you need to restore service, because the current broken deployment state may be what Vercel needs to inspect.
Josh To add, I have a hobby account on Vercel and a Pro account. I was trying to add the personal GitHub to the hobby account and keep the work GitHub on the pro account. Maybe I really only have one account on Vercel (I saw that only 1 GitHub account may be used per Vercel account – the UI is confusing here because then why does it say *Add* Account)?
Amy Egan Yes, you can connect one GitHub account to a single Vercel account. That is the expected behavior. https://vercel.com/kb/guide/connecting-teams-with-personal-git-accounts
ADTC FWIW, you can set up GitHub Actions to indirectly deploy your projects into Vercel without connecting your GitHub account. See https://gist.github.com/ADTC/63ce24ca5a6c306f05d75ad2d6975e93
system The domain troubleshooting guide can help with most custom domain configuration issues. You might be able to use that guide to solve it before a human is available to help you. Then you can come back here and share the answer for bonus points. https://vercel.com/docs/projects/domains/troubleshooting You can also use v0 to narrow down the possibilities.
Ryu Hi Hero, I’d first separate “Safari is slow to get the document” from “Safari gets the document quickly but renders a blank page for a while.” A quick way to check is to run this in Safari’s console after a slow load, then compare it with Chrome on the same iPhone: ``` const n = performance.getEntriesByType("navigation")[0]; console.table({ dns: Math.round(n.domainLookupEnd - n.domainLookupStart), connect: Math.round(n.connectEnd - n.connectStart), tls: Math.round(n.requestStart - n.secureConnectionStart), ttfb: Math.round(n.responseStart - n.requestStart), download: Math.round(n.responseEnd - n.responseStart), dom: Math.round(n.domContentLoadedEventEnd - n.responseEnd), total: Math.round(n.loadEventEnd - n.startTime), }); ``` If `dns`, `connect`, `tls`, or `ttfb` is much higher only in Safari, I’d test Safari with iCloud Private Relay/content blockers disabled, and compare Wi-Fi vs mobile data. I’d also compare the custom domain against the `*.vercel.app` URL. If the Vercel URL is fast but the custom domain is slow, then I’d look at DNS, SSL, or anything proxying the domain. If the network numbers look normal but the screen stays blank, then I’d focus on client rendering: large JS, blocking third-party scripts, fonts, CSS, hydration, or an app shell that does not render meaningful HTML before client code runs. One useful isolation test is adding a very small static page, for example `/plain`, that only returns simple text and no heavy components. If Safari loads `/plain` instantly but the homepage is slow, the issue is probably in the page code/assets. If `/plain` is also slow, the issue is more likely network/domain/browser-path related. The most useful detail to share next would be the timing table from Safari and Chrome for the exact same URL.