trpc-query-writing-side-effects-breaks-idempotency
tRPC query procedures (mapped to GET) must be idempotent reads — writing side effects inside a query violates the contract. The TaskFlow reminders.checkDueTomorrow was a query that wrote notification records, meaning reminders only fired when a user manually opened the app. Reminder/notification delivery requires a background cron job calling a mutation or a dedicated server-side scheduler, not a query endpoint.
Related
- trpc-query-used-for-write-ops-breaks-reminder-delivery
- trpc-query-procedure-must-not-perform-writes
- trpc-query-procedures-must-be-idempotent-reads-only
- trpc-query-procedure-used-as-mutation-violates-contract
- trpc-query-must-not-write-data
- trpc-query-used-for-side-effectful-reminder-writes
- trpc-query-used-for-side-effects-reminder-anti-pattern
- trpc-query-procedure-used-for-side-effecting-writes
- trpc-query-writing-data-breaks-cron-and-idempotency
- trpc-query-with-write-side-effects-breaks-idempotency
- trpc-query-used-for-write-violates-idempotency-contract
- trpc-query-procedures-must-not-write-data
- trpc-query-writing-data-violates-idempotency-contract
- trpc-query-with-side-effects-breaks-idempotency
- trpc-query-used-for-writes-breaks-reminder-delivery
- trpc-query-that-writes-is-broken-notification-pattern
- trpc-query-that-writes-violates-idempotency-contract
- trpc-query-used-for-write-cron-notification-never-fires
- trpc-query-that-mutates-state-antipattern