I’m trying to get WHIP ingress working with LiveKit v1.11.0 in a datacenter environment (public IP 173.208.153.61). My guests can connect to rooms normally via TURN, but my WHIP connections from OBS consistently fail with ICE connection state: failed.
The symptom in ingress logs:
text
WARN: Failed to ping without candidate pairs
ICE connection state changed: failed
The smoking gun in livekit-server logs:
text
“rtc.portUDP”: {“Start”:7882,“End”:0}
The UDP port range never initializes properly. I have port_range_start: 50000 and port_range_end: 60000 in my config, but LiveKit ignores them and shows “End”:0. I’ve tried:
Setting port_range as a string
Environment variables (LIVEKIT_RTC_PORT_RANGE_START, etc.)
Removing udp_port: 7882 (suggested by some threads)
Nothing changes the “End”:0 behavior.
My config:
yaml
rtc:
tcp_port: 7881
port_range_start: 50000
port_range_end: 60000
use_external_ip: true
node_ip: “173.208.153.61”
stun_servers:
- “stun.l.google.com:19302”
What works:
RTMP ingress works fine
Guest participants connect via TURN
STUN discovers my external IP correctly (logs show found external IP via STUN)
UDP port 7882 is reachable from outside (nc -uv succeeds)
What doesn’t work:
WHIP connections always fail ICE
rtc.portUDP always shows “End”:0
Is this a bug in v1.11.0? Am I missing a required config field? Any help appreciated. I have been working on this for awhile, and this is the last leg of it. Once I get this worked out, it will be solid. ObsVirtual Cam works for my host cam if needed. But, I know Ingress Whip would be more efficient. Again, thanks for any help. I will provide more info, if you need it. Or, more logs.