{
  "id": 6837996,
  "title": "I Set a 500ms Timeout and Got 28 Hours",
  "url": "https://urgent.news/2026/09/12/i-set-a-500ms-timeout-and-got-28-hours",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-12T01:16:42.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/quintetkit/i-set-a-500ms-timeout-and-got-28-hours-20p3"
  },
  "original_language": "en",
  "account": "A MCP server was experiencing intermittent hangs, leading the reporter to implement a 500 millisecond timeout. This timeout value, specified in milliseconds, was set to a minimum, effectively limiting the server's response time. However, the reporter later discovered that values below 1000 milliseconds were ignored, and instead, the system defaulted to a 28-hour timeout. This discrepancy led to confusion, as the reported 500 millisecond timeout was, in reality, a 28-hour timeout. The reporter also learned that progress notifications from the server did not affect the timeout, and a timeout of at least 1000 milliseconds served as a floor on the idle timeout. Additionally, the reporter found that URLs without a specified type were treated as stdio servers, requiring additional configuration. A common issue the reporter encountered was a repository unable to approve its own servers, which appeared as a permissions problem. This occurred because servers from .mcp.json files needed approval, which could only be granted through specific settings files. The reporter emphasized the importance of a configuration checker that doesn't flag correct configurations, as the existing checker would overlook valid settings and allow unintended behavior.",
  "summary": "I had an MCP server that occasionally hung, so I gave it a short leash: { \"mcpServers\" : { \"flaky\" : { \"type\" : \"http\" , \"url\" : \"...\" , \"timeout\" : 500 } } } timeout is in milliseconds, so that reads as half a second. Values below 1000 are ignored. The call falls through to MCP_TOOL_TIMEOUT , and if that is unset, to its default — about 28 hours. I had written the tightest limit I could and…",
  "key_points": [],
  "editors_take": null,
  "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."
}