Only approval-pending booking requests can be confirmed or declined. The appointment was already confirmed, rejected, expired, canceled, claimed by another confirmation workflow, or was never awaiting barber approval. Concurrent confirm, decline, customer cancellation, and expiry attempts produce exactly one terminal booking-request result. A retry with the same idempotency key replays its original response before this state check is applied.
{ "type": "https://docs.guile.app/problems/appointmentApprovalNotPending", "title": "Appointment Approval Not Pending", "status": 409, "detail": "Only approval-pending booking requests can be confirmed or declined. The appointment was already confirmed, rejected,..."}