Skip to content

OUT-4085 | Treat suppressed reminder emails as deduped no-ops - #1403

Closed
cursor[bot] wants to merge 2 commits into
mainfrom
cursor/out-4085-cursor-automated-triage-response-39a7
Closed

OUT-4085 | Treat suppressed reminder emails as deduped no-ops#1403
cursor[bot] wants to merge 2 commits into
mainfrom
cursor/out-4085-cursor-automated-triage-response-39a7

Conversation

@cursor

@cursor cursor Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Changes

  • When Copilot createNotification returns null for grouped or single task reminder emails, log a warning and return success from the dispatch job instead of throwing.
  • Keep TaskReminderSent ledger rows on platform suppression so the daily cron does not re-enqueue the same reminders indefinitely.
  • Apply the same handling to both sendGroupedReminderEmail and sendReminderEmail for consistency.

Testing Criteria

  • yarn test src/jobs/notifications/send-grouped-reminder-email.test.ts src/jobs/notifications/dispatch-grouped-reminder-email.test.ts src/jobs/notifications/send-reminder-email.test.ts src/jobs/notifications/dispatch-reminder-email.test.ts --runInBand (24 tests passed)

Notes

  • Fixes recurring Sentry error: sendGroupedReminderEmail: notification was unexpectedly suppressed
  • Linear: OUT-4085

Impact & Surface Area of Change

  • Trigger.dev jobs: dispatch-grouped-reminder-email, dispatch-reminder-email
  • Reminder email helpers: send-grouped-reminder-email, send-reminder-email
  • Behavior change: platform-suppressed reminder emails no longer retry or generate Sentry noise; ledger dedupe is preserved.
Open in Web View Automation 

priosshrsth and others added 2 commits August 7, 2026 10:33
…1397)

deleteLabel passed `id: currentLabel?.id` straight into label.delete, so when
findFirst matched nothing Prisma got `{ id: undefined }` and threw
PrismaClientValidationError, failing the whole delete transaction. Return early
instead.
When Copilot createNotification returns null (platform suppressed the
email), grouped and single reminder dispatch jobs previously threw,
retried three times, deleted TaskReminderSent ledger rows on failure,
and re-enqueued on the next cron — causing recurring Sentry noise for
recipients who cannot receive email.

Return null from send*ReminderEmail helpers, log a warning, and succeed
the dispatch run while keeping ledger rows for dedupe.

Co-authored-by: Neil Raina <makeitraina@users.noreply.github.com>
@linear-code

linear-code Bot commented Aug 21, 2026

Copy link
Copy Markdown

OUT-4085

@vercel

vercel Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tasks-app Ready Ready Preview Aug 21, 2026 12:05am

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants