Pick an option on each card and press Done; your answer goes straight back to the session. The raiser's pick is marked. "I'm not sure" and "Take it to the engineering bridge" are real answers.
stuck-tour-slot-sweep flagged reservation 663ef4c3-a188-4503-a017-3dccaa1234ea on mailbox propflow.ai@outlook.com, holderPropertyId appfolio-45 (the Test Property), interval 2026-10-14T16:00-16:30Z, submittedAt 2026-10-13T19:35:52Z, state=submitted, tourId absent, providerEventId absent. Queried PROP#appfolio-45/TOUR# partition (219 rows) — none carry this reservationId in slotReservation. Sentry query for firstSeen:-2d around applyTourIntent / tour-slot-hold returns zero issues. Code trace: writeFirstInvite() and retryTourCalendarWrite() are the only two call sites that create a calendar event, and both require an already-saved Tour row and both call bookTourSlot(claim, tour.id, eventId) immediately on a successful write, which flips state to booked. Since no Tour row anywhere references this reservationId, no code path could have reached the calendar write for it — the crash happened between submitSlot (held->submitted) and saveTour. Safe recovery is releaseSlot/releaseTourSlot on this one row, which is a DynamoDB Delete against propflow-prod — a hard-stop action for an autonomous decider run without a human decision, however confident the analysis.
21c384ee is parked on this.