The Wire · Showcase
Phoenix 1.8.12 patches channel message drop
By RepoJournal · Filed · About Elixir & Phoenix
Phoenix shipped a patch release that fixes a channel bug silently dropping messages without a join_ref, and LiveView is quietly rewriting the rules of navigation.
Phoenix 1.8.12 is out [1], fixing two bugs: the return_to session key now clears after login [2] and channel messages without a join_ref are no longer dropped [3]. The join_ref issue was introduced in 1.8.3 and violated the documented protocol, which "explicitly allows non join messages to omit the join_ref" [4]. On the Elixir side, performance work continues with fast paths for Calendar.ISO.iso_days_to_unit/2 that short-circuit the same-unit case [5], plus a type checker crash fix for non-returning `for ... into:` expressions [6]. LiveView is the busy desk: a new `navigation_type/2` API [7] answers the forum plea to control cross-session navigation warnings, while another PR lets you opt out of the phx-remove cascade on navigation [8] and a third makes phx-drop-target-active more reliable [9]. External metadata failures now surface consistently in `upload_errors/2` as `{:external_metadata_failure, meta}` and auto-uploads report them too [10]. The activity across all three repos: 18 commits, 10 PRs, 2 releases.
One email a day. Unsubscribe in one click.
Keep up with Elixir & Phoenix in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → Upgrade Phoenix to 1.8.12 before next deploy to stop dropping channel messages phoenixframework/phoenix [immediate]
- → Review LiveView's new navigation_type/2 and phx-remove opt-out for your navigation code phoenixframework/phoenix_live_view [plan]
- → Watch Calendar.ISO.iso_days_to_unit/2 fast paths for inclusion in a future Elixir release elixir-lang/elixir [monitor]
References
- [1] v1.8.12 ↗ phoenixframework/phoenix
- [2] Clear :return_to session key after logging in ↗ phoenixframework/phoenix
- [3] join_ref can be nil on non-join messages (#6800) phoenixframework/phoenix
- [4] join_ref can be nil on non-join messages ↗ phoenixframework/phoenix
- [5] Add unit fast paths to Calendar.ISO.iso_days_to_unit/2 (#15771) elixir-lang/elixir
- [6] Fix type checker crash on non-returning for ... into: expression (#15747) (#15770) elixir-lang/elixir
- [7] Add Phoenix.LiveView.navigation_type/2 (#4393) phoenixframework/phoenix_live_view
- [8] Allow to opt out of phx-remove cascade on navigation ↗ phoenixframework/phoenix_live_view
- [9] Make phx-drop-target-active more reliable ↗ phoenixframework/phoenix_live_view
- [10] Ensure external metadata failures are reported consistently (#4397) phoenixframework/phoenix_live_view