proud-policeman-65107
02/19/2026, 4:29 AMtall-airline-16756
02/19/2026, 4:30 AMtall-airline-16756
02/19/2026, 4:30 AMegress_ended webhook for failed recordings.
◦ If backupStorageUsed: true appears, there will be a manifestLocation you can use to download the recording from backup storage.
1. Inspect logs for the 503s
◦ Collect the egress worker logs around the 503 timestamps and the SFU/agent logs for the same room IDs.
◦ Look for messages indicating timeouts, worker rejection, Chrome crash, or S3 PUT errors.
1. Verify instance type and CPU behavior
◦ Confirm whether you’re using burstable instances (t3/t4). If so, check CPUCreditBalance (CloudWatch). Exhausted credits cause throttling even if average load looks low.
◦ If using burstable instances, try a fixed performance instance (e.g., m5) for comparison.
1. Check S3 permissions/config
◦ Ensure PutObject is allowed from the egress service. If using AssumeRole, confirm the LiveKit ARN was allowed and feature flags for assume-role are enabled.
◦ Look for S3 4xx/5xx errors in logs/webhook details.
1. Test with reduced load / different egress type
◦ Retry recording fewer concurrent rooms to see if failure rate drops.
◦ If you’re using Room Composite, try Track Egress (less CPU-intensive) for a subset of tests.
What I need from you to diagnose further
• One example of a failed egress:
◦ The egress_ended webhook payload for a failed recording (remove any secrets/keys).
◦ The egress request payload you used (no secrets).
• Egress worker logs (time window around the 503), or at minimum any error lines related to that request.
• Your instance type (example: t3.large, m5.xlarge) and whether it’s burstable.
• Whether you’re using Room Composite (headless Chrome) or Track Egress/Track Composite.
• How you’re authenticating to S3 (access keys vs AssumeRole).
Recommended next steps (short-term)
• Search the egress_ended webhook first for backupStorageUsed. If present, you can retrieve the recordings from the manifest URL.
• If you’re on a burstable instance type, run a short test on a non-burstable instance to confirm whether CPU credits are the issue.
• If logs show S3 PUT errors, share those lines and we’ll walk through policy/role checks.
If you share the few items above (egress_ended payload + logs + instance type + egress type), I’ll analyze them and give the most likely root cause plus the exact remediation steps to get all recordings reliably delivered to S3.
Sources: Universal Egress | Self-hosted deployments | LiveKit Documentation | Troubleshooting Latency and Timeout Errors with Turn Detection on AWS | Backup Egress Recordings | Pricing | LiveKitproud-policeman-65107
02/19/2026, 5:17 AMtall-airline-16756
02/19/2026, 5:17 AMtelnet <redis-host> <redis-port> or nc -vz <redis-host> <redis-port>
◦ If you use TLS, test with openssl s_client -connect <redis-host>:<port>
◦ Note any DNS resolution failures or timeouts.
1. Validate Redis host & port the egress process is configured to use:
◦ Confirm the environment variables or config contain the correct Redis hostname, port, and whether TLS is required.
1. Check Redis authentication/TLS:
◦ Verify the password/ACL or TLS certificates are correct.
◦ Look for authentication errors in egress logs (e.g., “ERR invalid password” or TLS handshake failures).
1. Review network path and permissions:
◦ If redis is in another VPC/subnet, confirm route tables, VPC peering, Transit Gateway, or PrivateLink are configured.
◦ Check security groups and NACLs allow inbound traffic from the egress worker subnets to the Redis port.
◦ If your egress is private and the Redis host uses a public DNS name, ensure DNS resolves to the private IP inside the VPC (split-horizon DNS).
1. Inspect Redis health and capacity:
◦ Ensure Redis is up, not overloaded, and accepting new connections. Look at connection counts and slow logs.
1. Increase egress worker logging (short term)
◦ If not already verbose, enable more detailed egress logs around Redis connection attempts so we can see specific error messages.
What I need from you to pinpoint the issue
• A sample of the egress worker log lines around the “connecting to redis” messages and the 503 Twirp error timestamps (remove any secrets).
• The Redis connection string/config used by egress (host, port, whether TLS/auth is enabled — do not include the password).
• How Redis is deployed (managed Redis like AWS Elasticache, self-hosted in another VPC, etc.).
• Whether egress and Redis are in the same VPC/subnet or different VPCs, and whether there are NAT/proxy/VPC peering/PrivateLink in between.
• The output of a connectivity test from an egress host (e.g., result of nc -vz <redis-host> <port> or telnet) if you can run it.
Quick remediation suggestions you can try immediately
• If Redis is unreachable due to networking, route/security changes to allow connectivity will stop the 503s.
• If using burstable or private instances with strict outbound rules, temporarily allow outbound access to Redis from the egress subnet and test.
• If auth/TLS mismatch is suspected, confirm config matches Redis requirements and test with a simple Redis client from the egress host.
• If Redis is overloaded, scale Redis or add more egress worker capacity so requests aren’t rejected.
Next step Share the logs and the connection details listed above (no secrets). With those I’ll analyze the precise Redis error and give exact remediation steps (network config rules, config fixes, or scaling recommendations).strong-hydrogen-34992
02/19/2026, 2:04 PMtall-airline-16756
02/19/2026, 2:04 PMproud-policeman-65107
03/24/2026, 4:48 AMtall-airline-16756
03/24/2026, 4:48 AMegress_started, egress_ended) to verify jobs finish and uploads succeed. If upload failures occur, check egress_ended for backupStorageUsed and manifestLocation.
If you still see 503s after switching
• Share a short log snippet around the 503 and any “connecting to redis” lines (redact secrets).
• Share the egress type shown in the request (Track Egress) and your instance type.
• Run a simple connectivity test from an egress host to Redis and paste the result (nc/telnet/openssl).
Next step
• Try another controlled load test with Track Egress while watching the above metrics. If everything looks good, the switch resolved it. If not, send the logs/connectivity output and I’ll pinpoint the remaining issue and recommended fix., with interactive elements