- mutationFn now throws on non-ok responses so failed appointment creation (409 no slots, 400 validation) properly rejects instead of silently calling onSuccess with no id - handleAppointmentSubmit rejects if server returns success but no id - invalidate QK_APPOINTMENTS_BASE cache after successful appointment creation so the appointments page refreshes automatically Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>