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.
Chrisrivero Dev Hey, This doesn’t sound like a 404 issue. If the function is hanging for about 60 seconds and then dying with INTERNAL_FUNCTION_INVOCATION_FAILED, I’d first try to confirm whether the function is actually entering your handler in Vercel. Can you add a log as the very first line of the function and see if that appears in the invocation logs? If it does, then I’d start checking what it’s waiting on after that, especially a database connection or anything environment-specific between local and Vercel. If the first log never appears, that points more toward the runtime/startup side rather than your application logic. Since the generated artifact works locally on Node 22/24, I’d definitely want to isolate exactly where execution stops in Vercel before changing more code.
Jacob Paris This is an initialization timeout, failing before your server receives its request. The most likely reason is if `server.listen()` never completes in a way that Vercel can see For zero-config Node servers, Vercel captures your server.listen() call while the module loads and routes traffic to it internally, ignoring the PORT you pass. This removes a layer of overhead by letting Vercel serve your server directly instead of receiving and passing into an internal service. Running the built server.mjs directly with Node skips that step, which is why it works locally. I think it's possible that passing the HOST to your listen call is preventing Vercel from connecting to it, but hard to say for certain without testing. You could try a deployment without that and see if it starts working. Otherwise, to find where your module stops during initialization, add console.log at the very top of your entry file and right before and after server.listen(), redeploy, and check Runtime Logs. If the first log never appears, the module isn't finishing loading. If it appears but the listen log doesn't, listen() isn't being reached during startup
Amy Egan Thanks for reporting this. I'm checking with the team about it
Romlenzotti Hi @amyegan Thanks for your message. On the example I finally fixed the problem. ```json { "$schema": "https://openapi.vercel.sh/vercel.json", "bunVersion": "1.4.x", "framework": "bun" // this line is required, but missing in the example } ``` But in the vercel backoffice Bun framework is missing. This is why I haven't tried that, and in my mind bunVersion should trigger bun automatically. After that I faced to another issue. One the dependencies (universal-github-app-jwt) of octokit to consume github API use internal imports to resolve crypto lib depending on the : ```json { "imports": { "#crypto": { "node": "./lib/crypto-node.js", "default": "./lib/crypto-native.js" } }, ``` import { subtle, convertPrivateKey } from "#crypto"; // >> unable to resolve #crypto But in your Bun integration, theses imports aren't resolved. Use a bun patch doesn't solve this problem. At this step, I decided to back forward to a Node.js stack which is more stable ;) (I assume the Bun support in vercel still in beta). Let me know if you need more details on the different issues. See you
Amy Egan Glad you got it working! I'll add these notes to the internal ticket for the team