@meteorjs 3.5.1-beta.0 is out 🚀
3.5 shipped Change Streams, pluggable DDP transports, and session resumption. Real production load found the edge cases — 3.5.1 fixes them. No breaking changes, no migrations.
The highlights:
🔄 Change Streams that don't get stuck. Before: a long MongoDB disconnect could expire the stream's resume point, and Meteor would retry it forever — CPU pinned at 100%, reactivity silently frozen for every client until someone restarted the server. Now: Meteor detects it, discards the expired position, and rebuilds from the present. Subscriptions recover on their own.
🔐 The hanging login bug is dead. Under load with change streams, a rare deadlock between the "wait until my writes reached subscriptions" machinery and the machinery doing the delivering could leave method calls hanging forever. If you've stared at a login spinner that never resolved — this was probably it.
📡 Reconnections you can trust. Messages sent during a brief disconnect are held and delivered instead of dropped. Phantom disconnect events from network blips are gone. A server-side memory leak from closed connections is fixed. Session resumption now works on the train, not just in the demo.
⚡ Rspack, quieter: Npm/Assets work in server code under the dev server, no more port-in-use on restart, lower build memory, Windows paths with spaces fixed.
✨ Small additions: `
this.name` inside server methods (great for shared logging/metrics helpers), an opt-in setting to keep Content-Length responses uncompressed, and server bundles compiled to es2022 — smaller and faster, no action needed.
Help us test before the official release:
meteor update --release 3.5.1-beta.0
We especially want feedback from apps on Atlas shared/serverless tiers, heavy login/method load, and flaky-network clients.
Forum post:
forums.meteor.com/t/meteor-3…
Change log:
docs.meteor.com/history.html
Merged PRs:
github.com/meteor/meteor/pul…
Built by the community, as always. 💙