# X_TRANSPORT_UNAVAILABLE

## Means

the fanout bus is unreachable

## Typical cause

the nats-server `NATS_URL` names is down or misconfigured. **At boot** only a `sync` node or a replicator raises it, after retrying the dial for 15 s — the cause names the server, the wait and the last attempt's own failure. A `web`, `worker` or `scheduler` process boots without the bus and raises it from a **publish** instead (`publishChannelEvent`, the cache-invalidation broadcast), at once, until its background dial lands; a publish made once the client's socket has closed is refused the same way rather than buffered by the client; the replicator retries such a refusal three times over 2 s before its run ends ([Realtime → what each role needs from the bus](/realtime#what-each-role-needs-from-the-bus))

## Fix

`x doctor` — then check `NATS_URL`; in app code, catch it around a publish and log — the event meant "re-read"

[Realtime](/error-codes#realtime)
