trpc-query-procedure-used-as-mutation-violates-contract
Using a tRPC query procedure to perform writes (e.g., creating notification records inside a reminders.checkDueTomorrow query) violates the query/mutation contract — queries must be idempotent reads. This also means reminder notifications only fire when a user manually hits the endpoint; without a cron job the feature is effectively dead. Always route side-effecting operations through mutation procedures and trigger time-based logic via server-side cron.
Related
- trpc-query-procedures-must-be-idempotent-reads-only
- trpc-query-must-not-write-data
- trpc-query-used-for-side-effects-breaks-idempotency-contract
- trpc-query-used-for-write-ops-breaks-reminder-delivery
- trpc-query-procedure-must-not-perform-writes
- trpc-query-writing-side-effects-breaks-idempotency
- 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-that-mutates-violates-idempotency-contract
- trpc-query-with-write-side-effects-breaks-idempotency
- trpc-query-procedures-must-not-write-data
- trpc-query-procedure-with-write-side-effects-breaks-reminder
- trpc-query-writing-data-violates-idempotency-contract