LiveKit's startup warning about UDP receive buffer being too small
(default 212992 bytes vs suggested 5000000) is easy to overlook, but
under load — especially when many clients are forced through the TURN
relay — it causes dtls timeouts on publisher transports and asymmetric
black-tile / no-media symptoms. The fix has to be on the host because
net.core.rmem_max / wmem_max are read when LiveKit opens its UDP sockets
and can't be raised from inside the container.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
docker-compose does not recursively expand nested `${...}` in `:-`
defaults, so `TURN_DOMAIN=${TURN_DOMAIN:-${LIVEKIT_DOMAIN}}` leaked the
literal string `${LIVEKIT_DOMAIN}` into the container, breaking TURN
and WebRTC connectivity. Set the default in .env.sample where abra
shell-expands it before docker-compose sees it.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@@ -141,7 +141,3 @@ The warning should be gone from the LiveKit boot log.
TURN is enabled by default and helps users behind CGNAT/symmetric NAT connect to video calls. To disable it, remove `compose.turn.yml` from `COMPOSE_FILE` in your app config and set `LIVEKIT_TURN_ENABLED=false`.
TURN is enabled by default and helps users behind CGNAT/symmetric NAT connect to video calls. To disable it, remove `compose.turn.yml` from `COMPOSE_FILE` in your app config and set `LIVEKIT_TURN_ENABLED=false`.
See `docs/multinode.md` for multi-node deployment considerations.
See `docs/multinode.md` for multi-node deployment considerations.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.