CHW-4719 EmailRecipientSuppressed

email send skipped because the recipient is in the local postmark suppression ledger (hard bounce, spam complaint, or manual suppression)

Default message: email send skipped because the recipient is in the local postmark suppression ledger (hard bounce, spam complaint, or manual suppression)
HTTP status: 403 (client)

Problem. An outbound transactional email (invitation, magic link, password reset) was never handed to Postmark. Cause. The recipient is suppressed in the local postmark_delivery_events ledger — the most recent event for that address was a HardBounce, SpamNotification, or ManualSuppression. Sending again to a known-bad address burns sender reputation, so the send path stops before the API call. Fix. Confirm the address is correct; if the suppression was a mistake (typo fixed, mailbox restored, complaint withdrawn), clear it in the Postmark suppression list and let the next delivery event repopulate the ledger. HTTP 403.

Where you’ll see it. Primarily in structured server logs. The user-facing API deliberately returns the same generic reply whether or not a message was sent, so an attacker cannot use the response to enumerate registered addresses — the code exists so background send paths fail consistently rather than silently.