trpc-query-procedure-used-for-writes-contract-violation

The TaskFlow reminders.checkDueTomorrow was a tRPC query (GET) that wrote notification records as a side effect. Queries must be idempotent reads — writes belong in mutations. Beyond the contract violation, this pattern means reminders only fire when a user manually hits the endpoint rather than via a scheduled job, silently breaking the feature for any user who doesn’t open the app.