Deploy express JS to netlify

I have followed Express on Netlify | Netlify Docs precisely and it only ever results in a default Netlify 404 page.

my netlify.toml:

[build]
  command = "echo Building functions"
[functions]
  external_node_modules = ["express"]
  node_bundler = "esbuild"
[[redirects]]
  force = true
  from = "/api/*"
  status = 200
  to = "/.netlify/functions/api/:splat"

and my netlify/functions/api.mjs:

import express, { Router } from 'express';
import serverless from 'serverless-http';

export async function handler(event, context) {
  const app = express();
  const router = Router();
  router.get('/', (req, res) => res.send('Hello World!'));
  app.use('/api/', router);
  return serverless(app)(event, context);
};

using node v20. is there something that’s changed in the last year that would cause this?