---
title: "Unawaited async call in a Server Action or route handler (next/floating-promise)"
description: "Once the response is sent, serverless platforms freeze or stop the function: work nobody awaits may never finish, and its errors are lost."
url: http://localhost:4173/rules/next/floating-promise
updated: 2026-11-11
---

# Unawaited async call in a Server Action or route handler

> `next/floating-promise` is a vetd rule. It flags: Unawaited async call in a Server Action or route handler. It runs on every `check`, together with the TypeScript check.

| Fact | Value |
| --- | --- |
| Rule id | `next/floating-promise` |
| Severity | warning |
| Group | Server code: security and speed |
| Tags | correctness, nextjs-16 |

## Why it matters

Once the response is sent, serverless platforms freeze or stop the function: work nobody awaits may never finish, and its errors are lost.

## How to fix it

Await it, or schedule it with after() from next/server to run after the response.

## Credit

Based on work by:

- [Vercel](https://vercel.com): The react-best-practices skill and Next.js docs schedule post-response work with after() rather than leaving promises unawaited.

## References

- [after](https://nextjs.org/docs/app/api-reference/functions/after), Next.js
- [react-best-practices: Use after() for non-blocking operations](https://github.com/vercel-labs/agent-skills/blob/main/skills/react-best-practices/rules/server-after-nonblocking.md), Vercel (vercel-labs/agent-skills)
- [@vercel/functions API reference (waitUntil)](https://vercel.com/docs/functions/functions-api-reference/vercel-functions-package), Vercel

## See it

Demos in the vetd Lab:

- [Keep handlers lean](http://localhost:4173/lab/react-perf/keep-request-handlers-lean)

## Related rules

- [`next/sequential-await`](http://localhost:4173/rules/next/sequential-await.md)
- [`next/module-state`](http://localhost:4173/rules/next/module-state.md)

## Get this text from vetd

MCP: call `explain` with `{ "diagnosticId": "next/floating-promise" }`. CLI: `npx vetd explain next/floating-promise`.

---

[All 92 rules](http://localhost:4173/rules.md) · Previous: [`next/sequential-await`](http://localhost:4173/rules/next/sequential-await.md) · Next: [`next/async-effect`](http://localhost:4173/rules/next/async-effect.md)
