# How to handle Postmark delivery errors (Postmark::InvalidMessageError) in Rails mailers

## The problem

On Rails 4.2.4 with postmark-rails and DelayedJob-backed ActiveJob, delivery errors such as `Postmark::InvalidMessageError` (e.g. sending to `[redacted address]`) need to be handled both for `deliver_now` and `deliver_later`, without spamming the error logs for expected failures like inactive recipients. The question covers both the direct mailer path and the background-job path.

## The verified fix

On Rails 5+, use ActionMailer's exception handling: `ActionMailer::Base.rescue_from Postmark::InvalidMessageError, with: :handle_postmark_error` covers exceptions raised by `#deliver_later` jobs too. On Rails 4.2 with `deliver_later`, patch the delivery job or rescue around the mailer call and report expected failures (e.g. ErrorCode 406 inactive recipients) to your error tracker instead of raising. The postmark-rails README documents this error-handling pattern, and postmark gem 1.11.0+ ships more granular exception classes (e.g. `Postmark::InactiveRecipientError`).
Source: https://github.com/ActiveCampaign/postmark-rails/issues/51