Fire and forget Next.js API route

Hi @dean1994, the team confirmed this is intentional because un-awaited promises are not guaranteed to complete.

You can use the waitUntil utility from @vercel/functions for your fire and forget use case, as described in the docs.

import type { NextApiRequest, NextApiResponse } from "next";
import { waitUntil } from "@vercel/functions";

type ResponseData = {
  message: string;
};

export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse<ResponseData>
) {
  try {
    waitUntil(fetch("https://example.com"));

    return res.status(200).json({ message: "Hello World" });
  } catch {
    return res.status(500).json({ message: "Error" });
  }
}