---
title: "revalidateTag without a cacheLife profile (next/revalidate-tag-profile)"
description: "In Next.js 16 the single-argument revalidateTag(tag) is deprecated: it needs a cacheLife profile for stale-while-revalidate behavior."
url: http://localhost:4173/rules/next/revalidate-tag-profile
updated: 2026-11-11
---

# revalidateTag without a cacheLife profile

> `next/revalidate-tag-profile` is a vetd rule. It flags: revalidateTag without a cacheLife profile. It runs on every `check`, together with the TypeScript check.

| Fact | Value |
| --- | --- |
| Rule id | `next/revalidate-tag-profile` |
| Severity | warning |
| Group | Next.js 16 upgrade |
| Tags | nextjs-16, correctness |

## Why it matters

In Next.js 16 the single-argument revalidateTag(tag) is deprecated: it needs a cacheLife profile for stale-while-revalidate behavior.

## How to fix it

revalidateTag(tag, "max"), or updateTag(tag) in a Server Action when the user must read their own write.

## Credit

Based on work by:

- [Next.js team](https://nextjs.org): Next.js 16 deprecates single-argument revalidateTag and adds updateTag for read-your-own-writes in Server Actions.

## References

- [revalidateTag](https://nextjs.org/docs/app/api-reference/functions/revalidateTag), Next.js
- [updateTag](https://nextjs.org/docs/app/api-reference/functions/updateTag), Next.js
- [cacheLife](https://nextjs.org/docs/app/api-reference/functions/cacheLife), Next.js
- [Next.js 16](https://nextjs.org/blog/next-16), Next.js

## See it

Demos in the vetd Lab:

- [Tag, then invalidate](http://localhost:4173/lab/nextjs/tag-and-invalidate)
- ['use cache' and cacheLife](http://localhost:4173/lab/nextjs/use-cache-and-cachelife)

## Related rules

- [`next/segment-config`](http://localhost:4173/rules/next/segment-config.md)

## Get this text from vetd

MCP: call `explain` with `{ "diagnosticId": "next/revalidate-tag-profile" }`. CLI: `npx vetd explain next/revalidate-tag-profile`.

---

[All 92 rules](http://localhost:4173/rules.md) · Previous: [`next/no-amp`](http://localhost:4173/rules/next/no-amp.md) · Next: [`next/sync-dynamic-api`](http://localhost:4173/rules/next/sync-dynamic-api.md)
