Issues with BullMQ Worker Not Running in Vercel Production Environment

I would expect to see a timeout error in the runtime logs if the function is exceeding the time limit. You could increase the max duration for your serverless functions and see if that helps. The current maximum is 60s for Hobby and 300s for Pro teams.

You mentioned that this may be related to the serverless environment, and that seems plausible. Vercel Functions stop execution after a response is fulfilled, and any async work is terminated. This is definitely different from traditional server environments where asynchronous work can run indefinitely.

For a job to continue processing you would need to keep the Function invocation running, meaning you can’t send a response until the job is finished. The waitUntil` primitive helps support these use cases. Just be aware that extending the execution of a Function also incurs more usage, which eventually may lead to increased costs.