Il problema che stai riscontrando proviene da questa riga:
await client.close();
Dai documenti:
Significato quando close
il client, anche tutte le altre connessioni aperte si chiudono. Nel tuo caso # 2 e # 4 iniziano a funzionare poco dopo # 1 e # 3 (ma prima che siano terminate) e chiudi la connessione su di esse mentre sono ancora in esecuzione.
Anche dai documenti:
Sarebbe una buona pratica avere una gestione dello stato per le tue funzioni stateless (lo so), avere un servizio di connessione che fornisca solo la connessione alle tue funzioni stateless, sarebbe anche più facile gestire gli errori in questo modo.
Leggi di più su questo qui e nei documenti sui driver di nodejs
Una soluzione rapida (e molto non ottimale) al tuo problema sarebbe definire la connessione all'interno della funzione in questo modo:
// remove the definition from here
export default async (req, res) => {
// and move it here
const client = new MongoClient(process.env.DB_URI, {});
await client.connect();
.....
await client.close();
};