# X_LIVE_SERVER_RENDER

## Means

a browser-only live operation ran during a server render

## Typical cause

a `useMutation()` call reached from a page body. A server render has no socket and no page store, and a dropped write would look exactly like one that happened, so it refuses rather than queues

## Fix

move the call into an island's event handler (`x g island <route-dir> --at <route-dir>`). Guarding it with `hasPageSocket()` is not a fix: on the server that answers `false` forever, and the `budgets` step reports it as `X_LIVE_ROUTE_NO_ISLAND`

[Realtime](/error-codes#realtime)
