Nuxt · NUXT0060

useState values must be serializable

Report unsupported live values stored in Nuxt payload state.
NUXT0060vite-doctor/nuxthydrationerrorSuggestion

Run this rule

pnpm nuxt doctor --rules nuxt/state/no-nonserializable-usestate

Why it matters

Nuxt serializes payload state with devalue, which supports Map, Set, Date, and RegExp values. Functions and live sockets cannot be transferred to the client as payload state.

Use values supported by Nuxt's payload serializer, or keep live resources outside payload state.

Example

Keep useState serializable

Before

const socket = useState('socket', () => new WebSocket('wss://example.com'))

After

const socketUrl = useState('socket-url', () => 'wss://example.com')
Copyright © 2026