X_MUTATOR_NOT_IDEMPOTENT
Means
a mutator is declared without idempotent: true
Typical cause
mutator({ … }), checked at declaration. A mutator's write is replayed by the client under one Idempotency-Key — useMutation's retry, the offline queue's drain after a dropped response — and the server reads that key only for an idempotent: true action, so without it the replay runs the server half a second time
Fix
add idempotent: true to the mutator definition