The Wire · Showcase
RAILS HARDENS ERROR HANDLING FOR PUSH NOTIFICATIONS, REVERTS SCHEMA DUMP BREAKING CHANGE
By RepoJournal · Filed · About Rails
Action Push Native shipped structured provider errors with retry semantics while Rails core pulled back a migrations filter removal that broke existing workflows.
The action_push_native gem now surfaces what push providers already tell us: all errors inherit from a new `ActionPushNative::Error` base carrying `service`, `status`, `reason`, and `retry_after` [1]. This means APNs failures now expose numeric HTTP status codes and parsed reason tokens like `TooManyRequests` and `BadDeviceToken`, letting you build intelligent retry logic instead of scraping error messages. Existing error rescuers stay intact because the message remains the first positional argument.
Meanwhile, Rails core reverted a recent commit that removed the migrations filter from schema dumps [2], a change that broke existing workflows for teams relying on the filtered behavior. Xavier Noria merged the revert alongside a deprecation for positional arguments in the `insert` method [3], clarifying that `pk`, `id_value`, and `sequence_name` should now use keyword arguments with `returning:` for cleaner semantics. The core team also fixed test flakiness by making sure ActiveRecord tests don't rely on implicit MVCC-based ordering [4], catching issues with the new `pg_disorder` extension in reverse mode.
Dependabot kept the ecosystem moving with updates to googleauth 1.17.3 [5], httpx 1.7.6 [6], and rubocop 1.86.1 [7] across the push native and sanitizer repos. This period saw 15 commits and 12 PRs across 4 repos.
One email a day. Unsubscribe in one click.
Keep up with Rails 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 action_push_native to capture structured provider errors and add retry-after awareness to your push handlers rails/action_push_native [plan]
- → Review your schema dump generation if you depend on migrations filtering behavior - the recent removal was reverted rails/rails [monitor]
- → Start migrating `insert` calls from positional `pk`, `id_value`, `sequence_name` to keyword `returning:` argument rails/rails [plan]
References
- [1] Structured provider errors, push instrumentation, and Retry-After-aware retries ↗ rails/action_push_native
- [2] Merge pull request #58332 from rails/fxn/revert rails/rails
- [3] Deprecate positional `pk`, `id_value`, and `sequence_name` for `#insert` rails/rails
- [4] `activerecord`: make sure tests do not rely on implicit `SELECT` order ↗ rails/rails
- [5] Bump googleauth from 1.16.1 to 1.17.3 ↗ rails/action_push_native
- [6] Bump httpx from 1.6.3 to 1.7.6 ↗ rails/action_push_native
- [7] Bump rubocop from 1.82.1 to 1.86.1 ↗ rails/action_push_native