_"Our egress service is reading the config file co...
# ask-ai
e
_"Our egress service is reading the config file correctly (connects to Redis as configured), but it's not binding to the configured API port 7880. Only the health_port 9090 is listening. The config shows
port: 7880
and
health_port: 9090
. Why would egress ignore the main API port setting while respecting other config values?"_
t
Thanks for reaching out, Jason. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
I'd love to help you get this sorted out! Could you please share a bit more about your setup? Specifically: • Have you noticed any error logs or warnings in the egress service logs related to the API port? • Is there a firewall or network configuration that might be blocking port 7880? • Have you checked if any other process might already be using port 7880? These details will really help us understand what's going on with the API port and find the best solution together.
e
Perfect! Now we have all the diagnostic information LiveKit needs. Here's the complete summary: Complete Diagnostic Summary for LiveKit: Environment: • Container environment (no dmesg access, limited tools) • Egress running as PID 26, user 'egress' • Command line: just
egress
(no arguments) What's Working: Config file is being read correctly • Redis connection works (proves config parsing) • Health port 9090 responds to curl requests • Health port configured as
health_port: 9090
The Problem: API port 7880 configured as
port: 7880
in config • Port 7880 shows "blocked or in use" when testing socket binding • Port 7880 does NOT appear in
/proc/net/tcp
as listening • Cannot access egress logs due to permission restrictions Key Finding: Egress successfully reads the config file and binds to the health port (9090) but fails to bind to the main API port (7880). The port appears "in use" but isn't actually listening, suggesting a silent binding failure. No Error Logs Available: • No egress-specific log files found in
/var/log/
• Cannot access process stdout/stderr due to permissions • Cannot access system logs (dmesg) due to container restrictions This points to egress having an issue specifically with binding the main API port while other config settings work fine. LiveKit should be able to help identify why this selective binding failure occurs.
t
Thank you for sharing your observations! What you’re seeing is actually how the LiveKit egress service is designed to work. It doesn’t bind to a dedicated API port like 7880 because it doesn’t run an HTTP API server. Instead, it communicates through configuration settings, Redis, and environment variables. The
health_port
you mentioned (9090 in your setup) is there for health checks, and you can also set up a
prometheus_port
if you want to collect metrics. But just to clarify, there isn’t a separate API port for the egress service itself. If you have any more questions or need a hand with the configuration, please don’t hesitate to reach out—I’m here to help! Sources: pkg/config/service.go | Self-hosting the Egress Service | LiveKit Docs | ingress-sample.yaml
e
i am getting 503 errors every time the agent calls egress
t
I'm sorry to hear you're running into those 503 errors when the agent calls egress. Let's work through some common causes together: • Redis Connectivity: It’s important to make sure both your LiveKit server and egress service are connected to the same Redis instance. Sometimes, a mismatch here can lead to these errors. • Concurrency Limits: Have a look at your LiveKit plan's egress concurrency limits. For instance, the Build plan supports only 2 active egress requests at a time. You can easily check this on your LiveKit Cloud dashboard. • Full Egress Instances: If all your egress instances are currently full, that could be causing the 503 error. You might want to consider adding more instances or enabling autoscaling to help manage the load. • Configuration Issues: Double-check your egress service configuration, especially the Redis address, to ensure it matches the settings on your LiveKit server. A good place to start is by confirming your Redis connectivity and reviewing any concurrency or capacity limits. Please don’t hesitate to reach out if you’d like some help with these steps or need further troubleshooting—I’m here to assist! Sources: test/edge.go | SIP troubleshooting guide | LiveKit Docs | Quotas and limits | LiveKit Docs | livekit/livekit_egress.twirp.go