Nuxt · NUXT0039

Do not treat immediate:false async data as manual-only

Flags manual action useFetch in Nuxt project code before it leaks into runtime behavior.
NUXT0039vite-doctor/nuxtfetchingwarnSuggestion

Run this rule

pnpm nuxt doctor --rules nuxt/no-manual-action-usefetch

Why it matters

Nuxt data fetching relies on stable keys, payload serialization, and request context. Bypassing those contracts can duplicate requests or lose SSR data.

Remove manual action useFetch, or move it to the Nuxt runtime/API that owns that behavior.

Example

Use $fetch for manual mutations

Before

const { execute } = await useFetch('/api/orders', {
  method: 'POST',
  immediate: false,
})

After

async function submitOrder() {
  await $fetch('/api/orders', { method: 'POST' })
}
Copyright © 2026