Vercel does not allow arbitrary system executable calls, including pandoc, because Vercel is serverless. Its serverless functions run in a sandboxed environment with limited runtime access, so you can’t run exec() or spawn() to call system-level binaries like pandoc, unless they are part of the runtime or bundled statically with your app.
I am not up-to-date with fluid compute and all the stuff Vercel has done recently, so wait for staff to answer before accepting what I said above.
In a similar predicament I had with FFMPEG, I used WebAssembly. Below are some resources that might help with WASM (WebAssembly) if the Vercel team confirms you can’t execute pandoc in a serverless environment.
You can probably run WASM on a serverless function, but if the task is long-running (over 60 seconds) you should:
- Run it client-side (cheap for you, might be annoying for users)
- Run it on a separate backend server as an API (not cheap for you, but good UX)