{
 "id": "phoenix",
 "name": "Phoenix",
 "url": "https://dev-news.anonyfox.com/phoenix/",
 "site": "https://www.phoenixframework.org",
 "ecosystem": "beam",
 "title": "Phoenix release history and what changed since 2024",
 "description": "Every Phoenix release since February 2024 from hex.pm, month by month, and what happened to the Phoenix stories dev-news covered back then.",
 "lede": {
  "date": "2026-10-24",
  "paragraphs": [
   "On 7 July 2026 Phoenix shipped four releases on one day: 1.8.9, 1.7.24, 1.6.17 and 1.5.15. They fix CVE-2026-56811, where one client could open an unlimited number of channels and exhaust the server, and CVE-2026-56812, a presence key that crashed the JavaScript client.",
   "1.5.15 came 1,366 days after 1.5.14 from October 2022, and 1.6.17 came 1,236 days after 1.6.16. Security fixes reach branches that had been quiet for more than three years.",
   "The work on the 1.8 line goes on. 1.8.16 on 20 October fixes \"a lot of connection handling races\" in phoenix.js and lets each socket set its own channel limit."
  ]
 },
 "latest": {
  "version": "1.8.16",
  "date": "2026-10-20",
  "url": "https://github.com/phoenixframework/phoenix/releases/tag/v1.8.16",
  "summary": "[phoenix.js] Fix a lot of connection handling races"
 },
 "stable_releases_since_2024": 33,
 "prereleases_since_2024": 5,
 "releases": [
  {
   "version": "1.8.16",
   "date": "2026-10-20",
   "url": "https://github.com/phoenixframework/phoenix/releases/tag/v1.8.16",
   "summary": "[phoenix.js] Fix a lot of connection handling races"
  },
  {
   "version": "1.8.15",
   "date": "2026-09-25",
   "url": "https://github.com/phoenixframework/phoenix/releases/tag/v1.8.15",
   "summary": "[phx.gen.cert] Fix certificate not being accepted by Chromium"
  },
  {
   "version": "1.8.14",
   "date": "2026-09-14",
   "url": "https://github.com/phoenixframework/phoenix/releases/tag/v1.8.14",
   "summary": "Fix timer leak in LongPoll fetch requests (only used in service or web workers)"
  },
  {
   "version": "1.8.13",
   "date": "2026-08-25",
   "url": "https://github.com/phoenixframework/phoenix/releases/tag/v1.8.13",
   "summary": "Workaround issue where Mobile Chrome 149+ would not reconnect after tab is resumed"
  },
  {
   "version": "1.8.12",
   "date": "2026-08-20",
   "url": "https://github.com/phoenixframework/phoenix/releases/tag/v1.8.12",
   "summary": "[phx.gen.auth] Fix returnto session key not being cleared after logging in"
  },
  {
   "version": "1.8.11",
   "date": "2026-08-12",
   "url": "https://github.com/phoenixframework/phoenix/releases/tag/v1.8.11",
   "summary": "Fix Phoenix crashing on boot if Mix is available, but not started"
  },
  {
   "version": "1.8.10",
   "date": "2026-08-10",
   "url": "https://github.com/phoenixframework/phoenix/releases/tag/v1.8.10",
   "summary": "[Phoenix.CodeReloader] Fix \"must restart your server\" messages from code reloader when compile.lock mtime changes without a content change"
  },
  {
   "version": "1.5.15",
   "date": "2026-07-07",
   "url": "https://hex.pm/packages/phoenix/1.5.15",
   "summary": null
  },
  {
   "version": "1.6.17",
   "date": "2026-07-07",
   "url": "https://hex.pm/packages/phoenix/1.6.17",
   "summary": null
  },
  {
   "version": "1.7.24",
   "date": "2026-07-07",
   "url": "https://hex.pm/packages/phoenix/1.7.24",
   "summary": null
  },
  {
   "version": "1.8.9",
   "date": "2026-07-07",
   "url": "https://hex.pm/packages/phoenix/1.8.9",
   "summary": null
  },
  {
   "version": "1.8.8",
   "date": "2026-06-10",
   "url": "https://hex.pm/packages/phoenix/1.8.8",
   "summary": null
  },
  {
   "version": "1.8.7",
   "date": "2026-05-06",
   "url": "https://hex.pm/packages/phoenix/1.8.7",
   "summary": null
  },
  {
   "version": "1.7.23",
   "date": "2026-05-06",
   "url": "https://hex.pm/packages/phoenix/1.7.23",
   "summary": null
  },
  {
   "version": "1.7.22",
   "date": "2026-05-05",
   "url": "https://hex.pm/packages/phoenix/1.7.22",
   "summary": null
  },
  {
   "version": "1.8.6",
   "date": "2026-05-05",
   "url": "https://hex.pm/packages/phoenix/1.8.6",
   "summary": null
  },
  {
   "version": "1.8.5",
   "date": "2026-03-05",
   "url": "https://hex.pm/packages/phoenix/1.8.5",
   "summary": null
  },
  {
   "version": "1.8.4",
   "date": "2026-02-23",
   "url": "https://hex.pm/packages/phoenix/1.8.4",
   "summary": null
  },
  {
   "version": "1.8.3",
   "date": "2025-12-08",
   "url": "https://hex.pm/packages/phoenix/1.8.3",
   "summary": null
  },
  {
   "version": "1.8.2",
   "date": "2025-11-26",
   "url": "https://hex.pm/packages/phoenix/1.8.2",
   "summary": null
  },
  {
   "version": "1.8.1",
   "date": "2025-08-29",
   "url": "https://hex.pm/packages/phoenix/1.8.1",
   "summary": null
  },
  {
   "version": "1.8.0",
   "date": "2025-08-05",
   "url": "https://hex.pm/packages/phoenix/1.8.0",
   "summary": null
  },
  {
   "version": "1.7.21",
   "date": "2025-03-27",
   "url": "https://hex.pm/packages/phoenix/1.7.21",
   "summary": null
  },
  {
   "version": "1.7.20",
   "date": "2025-02-20",
   "url": "https://hex.pm/packages/phoenix/1.7.20",
   "summary": null
  },
  {
   "version": "1.7.19",
   "date": "2025-01-31",
   "url": "https://hex.pm/packages/phoenix/1.7.19",
   "summary": null
  },
  {
   "version": "1.7.18",
   "date": "2024-12-10",
   "url": "https://hex.pm/packages/phoenix/1.7.18",
   "summary": null
  },
  {
   "version": "1.7.17",
   "date": "2024-12-03",
   "url": "https://hex.pm/packages/phoenix/1.7.17",
   "summary": null
  },
  {
   "version": "1.7.16",
   "date": "2024-12-03",
   "url": "https://hex.pm/packages/phoenix/1.7.16",
   "summary": null
  },
  {
   "version": "1.7.15",
   "date": "2024-12-02",
   "url": "https://hex.pm/packages/phoenix/1.7.15",
   "summary": null
  },
  {
   "version": "1.7.14",
   "date": "2024-06-18",
   "url": "https://hex.pm/packages/phoenix/1.7.14",
   "summary": null
  }
 ],
 "log": [
  {
   "date": "2026-10-20",
   "title": "Phoenix 1.8.16",
   "text": "phoenix.js fixes \"a lot of connection handling races\" (#6867) and stops treating WebSocket close code 1000 as special. Phoenix.Endpoint.socket/3 gains max_channels_per_transport.",
   "url": "https://dev-news.anonyfox.com/log/2026-10-20/#phoenix-3",
   "sources": [
    {
     "label": "notes",
     "url": "https://github.com/phoenixframework/phoenix/releases/tag/v1.8.16"
    }
   ]
  }
 ],
 "then": [
  {
   "date": "2015-11-03",
   "title": "The road to 2 million websocket connections in Phoenix",
   "source": "https://www.phoenixframework.org/blog/the-road-to-2-million-websocket-connections",
   "old_url": "https://dev-news.anonyfox.com/articles/achieving-2-million-websocket-connections-in-phoenix",
   "next": [
    "Phoenix can hold millions of connections, and in July 2026 that turned out to be a risk too. CVE-2026-56811 showed a single client could keep opening channels. The fix sets a default limit of 100 channels per connection, on every branch back to 1.5."
   ]
  },
  {
   "date": "2022-11-07",
   "title": "Phoenix 1.7 release candidate: verified routes and Tailwind",
   "source": "https://www.phoenixframework.org/blog/phoenix-1.7-released",
   "old_url": "https://dev-news.anonyfox.com/articles/phoenix-1-7-rc-release-features-like-verified-routes-and-tailwind-support",
   "next": [
    "1.7.0 shipped on 24 February 2023 and the branch reached 1.7.24 in July 2026. 1.8.0 came on 5 August 2025, after five release candidates, and the X post for rc.0 lists dark mode, scopes and magic links."
   ]
  }
 ],
 "coverage": {
  "ok": true,
  "expected": 38,
  "present": 38,
  "checked_at": "2026-10-24T17:23:21.434Z",
  "since": "2024-01-01T00:00:00.000Z"
 },
 "sources": {
  "releases": {
   "type": "hex",
   "id": "phoenix"
  },
  "github": {
   "repo": "phoenixframework/phoenix",
   "tag_filter": "^v\\d"
  }
 },
 "feed": "https://dev-news.anonyfox.com/phoenix/feed.xml",
 "markdown": "https://dev-news.anonyfox.com/phoenix.md"
}
