El problema que tienes proviene de esta línea:
await client.close();
De los documentos:
Significado cuando close
el cliente, cualquier otra conexión abierta también se cierra. En su caso, #2 y #4 comienzan a ejecutarse poco después de #1 y #3 (pero antes de que terminen), y usted cierra la conexión en ellos mientras aún se están ejecutando.
También de los documentos:
Sería una mejor práctica tener algo de administración de estado para sus funciones sin estado (lo sé), tener un servicio de conexión que solo proporcione la conexión a sus funciones sin estado, también sería más fácil administrar los errores de esta manera.
Lea más sobre esto aquí y en los documentos del controlador nodejs
Una solución rápida (y muy subóptima) a su problema sería definir la conexión dentro de la función de la siguiente manera:
// 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();
};