{
  "id": 17309909,
  "title": "AWS ALB Idle Timeout Killed 14% of My Voice WebSockets at 60s",
  "url": "https://urgent.news/2026/10/31/aws-alb-idle-timeout-killed-14-of-my-voice-websockets-at-60s",
  "topic": "world",
  "section": "World",
  "published": "2026-10-31T00:10:05.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/ji_ai/aws-alb-idle-timeout-killed-14-of-my-voice-websockets-at-60s-27ec"
  },
  "original_language": "en",
  "account": "The AWS Application Load Balancer (ALB) idle timeout closes connections with no data flowing for 60 seconds, including WebSocket connections. This default applies to WebSockets as well. In the case of a voice app that only streams mic audio when the user is speaking, long pauses can result in the ALB dropping the connection after 60 seconds of silence. The browser interprets this as close code 1006, which appears as a random network error. To prevent this, it is recommended to send a WebSocket ping from the server every 25 seconds and raise the ALB idle_timeout. Additionally, reconnecting should resume the session instead of restarting it.",
  "summary": "A user emailed me a screen recording. The AI voice agent asks a hard question. The user goes quiet for about a minute to think. Then they start talking, and nothing happens. A second later the app reconnects on its own and the agent cheerfully asks the first question again. That loop came from the AWS ALB idle timeout on WebSocket connections. No exceptions, no 5xx in the dashboards, just a load…",
  "key_points": [
    "AWS ALB idle timeout closes idle connections after 60 seconds",
    "WebSocket connections affected by 60-second idle timeout",
    "Recommend raising ALB idle timeout and sending pings every 25 seconds"
  ],
  "editors_take": "Default load balancer configurations create silent failures for voice applications, forcing developers to implement active heartbeat mechanisms and session resumption to prevent user-facing network errors during periods of silence.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}