Back to all work

RespondIt AI, 2026

Phantom work orders

An AI maintenance agent told callers their repair had been booked. About 1 in 10 of those orders never reached the property system.

Role
Found, traced, and sized the failure; designed the fix
Systems
Voice agent, CRM work-order API, Yardi Voyager
Outcome
Classified P0 by the CTO; backfill plan and fix list delivered

Context

A maintenance-line agent was live for a group of properties. It took repair requests by phone and created work orders in the property management system.

Then an unverified caller was told their work order had been created. Nothing arrived in the property system. No error anywhere.

What I did

  1. Traced the call through the CRM code myself. A guard on the work-order API only ran when a property was attached to the call. Without one, the endpoint returned success while the write to the property system quietly failed, and the agent repeated that success to the caller.
  2. Closed the hole at the front door. I gated unverified callers at the welcome message, before the agent could take a request. No admin screen shows the maintenance prompt, so I proved the fix by behavior: a four-turn adversarial simulator run where no work order fired for an unverified caller.
  3. Went looking for the same failure at a larger client. Over 30 days, about 1 in 10 AI-created work orders had never reached the property system. Two root causes explained roughly 85% and 15% of them.
How a failed write became a confirmed repair The caller talks to the AI agent, which calls the work order API. If a property is attached, the order syncs to the property system. If not, the write fails but the API still returns success, and the agent tells the caller their work order is in. Caller AI agent “Your work order is in.” Work order API guard only runs if a property is set No property attached write fails, API says 200 Property attached order syncs to the PMS returns success
Before the fix: the model was honest about what the API told it. The API wasn't.

Result

The CTO classified it as P0. I delivered a backfill plan for the orphaned orders and a fix list for engineering:

  • Persist the property on every work order
  • Truncate descriptions to the property system's limit
  • Never report success unless the write actually succeeded
  • Alert on any order that hasn't synced

What it taught me

An AI agent is only as honest as the API under it. If the system says success on a failed write, the model will say it confidently to a resident waiting on a repair.