Every time Clara's handling of Camellia's main line (303-861-1057, forwarded to Clara's 844 line) failed callers, found from the call records. Also covers how we got here, and what Clara dials today for each customer.
2026-10-21 · Camellia Apartments (JP&Co) · read-only · findings are facts; options are Proposed — pending review · no fix yet (Fede)
Nine breakages in six and a half months; seven reached real callers. About 22 callers had 54 calls or transfers fail (incident rows summed; one caller appears in three incidents; the incident 2 and 8 counts come from the earlier reviews, not from call records). One caller-ID change, made for every customer on Sep 24, caused two of them: Joanna's phone silencing transfers, and the transfer loop. Hand-offs that silently reached nobody took 7 to 14 days to find.
| # | When (MT) | What callers got | Callers / calls | Cause | Detected by | Time to detect | Fix |
|---|---|---|---|---|---|---|---|
| 1 | Apr 10, 12:42–12:56 | Busy signal | 2 / 7 | The lookup Clara runs before answering failed, on the day of the Vercel move unverified | Unverified (Fede test 13:11) | ~29 min inferred | Unknown; the 844 line still has no fallback |
| 2 | May 21 ~12:15 → May 22 ~10:00 | "I wasn't able to complete the transfer" | 2 / 3 | #1276 stored the transfer number as placeholder text {{pm_phone_number}}; Twilio dialed the letters as keypad digits | Fede | ~22 h | Live patch, then #1329 plus a test |
| 3 | Jun 5, 11:40–11:46 | Cut off after the greeting | 0 real / 4 test | Voice-platform quota ran out | Fede's test calls | Immediate | Quota restored; no quota monitor |
| 4 | Aug 18 → Sep 1 | Transfer rang out; line dead; nobody told | 5 dropped / 7 of 19 transfers | Failed-transfer notice off at Camellia; no message taken | Fede, Aug 27 15:36 ("hits the PM personal voicemail… taking this one"); Aug 31 investigation | 9–11 days | #10784: a failed transfer takes a message |
| 5 | Sep 7, 03:48–04:01 | (near-miss) routing broke on the shared agent | 0 / 0 | Shared prompt change #7260 | Bench test | ~8 min (revert opened 03:56); 13 min to fixed | Revert #7263 |
| 6 | Sep 16, 15:07–16:37 (the broken shared agent went live 13:39; 15:07 is the first Camellia call it hit) | Dead line after the first sentence | 2 / 12 | Western Slope call-center change sent an empty value the voice platform rejects | Smith's #alerts post 15:29 ("All LLMs have failed", handed to Fede's lane); WS session 15:58 | 22 min to the alert; 51 min to the WS session | Revert #8923; guard #8934 |
| 7 | Sep 24 → Oct 9 | Transfer rang Joanna as an unknown number; silenced; logged "connected" | 8 transfers screening from review | Caller-ID passthrough for every customer (#11075/#11100) | Oct 8 review | ~14 days | Caller ID chosen per destination (#18008/#18016) + hand-made write |
| 8 | Sep 29 → Oct 7 | "Nobody can pick up right now", even in office hours | 7 / 11 | Western Slope routing chain, live Sep 25, removed Camellia's person destination | Oct 7 alert + inspection | ~7.5 days | Hand-made write: Joanna on the catch-all list |
| 9 | Oct 13 → open | Asked for a person, got Clara again | 5 / 14 dials, 12 looped | Same caller-ID change as #7: a transfer to the main line now shows the caller's own number, and JP&Co's forward sends it back to Clara. Transfers showing the 844 reached the office all spring; the three that showed the caller's number looped (see below) | Alert Oct 13 14:00 (no fix followed); alert Oct 20 11:13 on Victoria, handed to Fede's side; Fede Oct 21 | ~5 h to alert; 8 days to action | None yet (Fede: no fix yet) |
All 73 calls Clara ever placed to 303-861-1057 (Twilio, re-pulled Oct 21 after Fede's challenge; a call counts as a transfer when a caller forwarded from the main line was live on Clara's line at that moment and the dial ended inside that call):
| When | Caller ID shown to JP&Co | Dials | Came back into Clara |
|---|---|---|---|
| Mar 16 – May 28, Aug 17–18 | Clara's own line (844) | 55 (41 transfers of a caller forwarded from the main line; 14 with no such caller, 11 of them tests before forwarding went live Apr 3; one Jul 30 dial with nobody on the line) | 0. 28 lasted over 30 s |
| Apr 9–10 | One of our own other numbers (720-637-1205), not the 844: test calls | 3 (+1 with nobody on the line, Apr 1) | 3 of 3, in 0 s, same length as the dial |
| Oct 13 – 19 | The caller's own number (passthrough, live Sep 24) | 14 transfers | 12 of 12 within 1 s of the dial. 2 did not come back (51 s and 61 s) |
Facts. Every transfer that showed Clara's 844 reached JP&Co without coming back (41 of 41). Every call to the main line that showed any other number came back into Clara within one second: the three April tests (3 of 3) and the October transfers (12 of 14; the other 2 never came back). No transfer with a caller on the line exists in Twilio from May 29 to Aug 16 or from Aug 19 to Oct 12. None of the 833 calls JP&Co forwarded to Clara came from the 844.
Inference inferred: JP&Co's forward does not act on calls that come from the 844, most likely a loop-prevention rule in their phone system. The Sep 23–24 caller-ID change (every hand-off shows the original caller's number) made every transfer show the caller's number, which is the shape that loops. Not explained by the data: the two October transfers that did not come back. Raw pull and join: session 006 scratch rca1057/.
| Date | What changed | Source |
|---|---|---|
| Mar 24 | The property's office phone becomes Clara's transfer destination | 02a3cf68ce |
| May 20 | Office phone split from the public number. Joanna puts her cell in it "for transfer-to-human" | #1244 |
| Aug 26 | Audit finds two Camellia office numbers (1057 and Joanna's 2043). Nobody notes that 1057 forwards to Clara | KB redesign doc |
| Sep 11 | First loop guard. It only knows numbers on a hand-kept list | #7921 |
| Sep 16–17 | The person-ask ships with a fallback: no list → dial the office phone. The fallback itself came out of code review (round 1 of #8925); Fede's Sep 16 ruling it cites says only that a person-ask is always answered, by transfer or message | #8932 |
| Sep 9 | Cleanup audit proposes folding the office phone into "who answers". Never done | settings-cleanup doc |
| Sep 22 | Western Slope loop. WS main line added to the list by hand (#10795). The playbook's "prove each destination after forwarding" line was added separately, not in that PR | #10795 |
| Sep 23–24 | Caller-ID passthrough, for every customer (#11100 merged Sep 23 8:06 PM, #11075 Sep 24 8:05 AM) | #11075, #11100 |
| Sep 25 | Connect step ships (blank transfer numbers fixed, Triage moves to the connect tool). Incident 8 starts four days later; the link is this page's inference, not stated in the PRs | #12343–#12377 |
| Oct 1 | "Office phone" box moves onto the Calls page (the field itself dates from #1244). The save checks format only, not loops | #14887, #15047 |
| Oct 7 | Interim fix puts Joanna on the catch-all list, not the talk-to-a-person list. Fede rules "no silent office-phone fallback" that day; it is never built, and the a/b/c options are still open on Oct 15 | phone-line doc |
| Oct 8 | Loop guard part 1 covers ring-list saves, not the Office phone box. Part 2 deferred, no issue filed | #18002 |
| Oct 8 & 10 | Office phone saved as the main line 1057 from Camellia's Settings page | loop RCA |
| Oct 9 | Calls page shows "Leasing: the office phone (…1057)" as normal behaviour | #18076, #18077, #18079 |
| Oct 14 | Situs main line registered before its forward goes on. Camellia's never was | #19591 |
In short: Since Sep 16, two ways of reaching a person have both been live: the lists, and a typed Office phone fallback. Retiring the fallback was proposed on Sep 17 and again on Oct 7, and left open. The loop guard is a hand-kept list; the part that would build it automatically was deferred. The Oct 7 fix put Joanna on the catch-all list, so leasing person-asks still fell through to the Office phone. That box is the one door with no loop check. Of the Western Slope lessons from Sep 22, only "register the main line" was applied anywhere (Situs, Oct 14); the loop alert was built for no one, and Camellia's main line was never registered.
A leasing person-ask in office hours tries, in order: the leasing ring list → the talk-to-a-person list → a direct dial to the Office phone (the Emergency phone when the Office phone is blank). That dial rings 30 s on the main path and never takes a message. After hours, Clara takes a message (one exception: the on-site-access transfer dials the Office phone at any hour). "Something else" goes to the catch-all list. The loop guard checks every dial against a hand-kept list; saving a ring list is checked against it, saving the Office phone is not. Settings re-read Oct 21, read-only.
| Customer | Person-ask in office hours | Main line on the loop list | Can loop today |
|---|---|---|---|
| Camellia | No talk-to-a-person list (Joanna is on the catch-all list only), so it falls to the Office phone, which is the main line | No | Yes |
| Western Slope | Talk-to-a-person list: Kat, then Bev (20 s each) | Yes | No |
| Situs | Message (no list, no office phone) | Yes | No |
| Yale 25 Station | Same setup as Camellia; no calls since Sep 21 | No | Likely, unverified |
Root cause, confirmed by Fede: Camellia's main line forwards every call to Clara except calls that come from Clara's own 844 number. On Sep 23 every hand-off was changed to show the caller's number instead of the 844. From then on a hand-off to the main line looked like any other call and was forwarded straight back: 12 of 14 October hand-offs returned within one second. The Oct 8 fix added a per-number caller-ID setting and applied it to Joanna's cell only. No session, PR or review in that chain proposed a loop alert.
Why the Sep 23 change existed. Fede: "the only reason we started all this saga is for MCC to detect the number of the tenant that's calling, so their SMS line works correctly. Everything else was working fine before we did that change." MCC is Western Slope's outsourced maintenance call center; its "press 1 for a text" keys off caller ID. One leg needed the caller's number; we made it the rule for every leg.
The design (Fede: "so it's the exception rather than the rule"; confirmed independently by an Opus 5.5 and a Fable 5.1 consult at max reasoning, Oct 21):
| Piece | What it does | Status |
|---|---|---|
| Rule | Every hand-off to the customer's own team (ring list, on-site, emergency; the Office-phone fallback is dropped, every customer names at least one person at onboarding, existing values migrate onto the list) is placed from the exact Clara line the call came in on, as before Sep 23. Screening cells ring; Comcast-type office lines let it through; staff get the caller's name and number from the whisper and the missed-call notice. | PR 1 #21668, 1b #21670, office-fallback removal #21671 merged Oct 21; migration ran 03:30 UTC Oct 22 and was read back: Camellia and Yale each got their one Office-phone number on the talk-to-a-person list, Western Slope untouched (its office number is the forwarded main line), 142 other buildings had no office phone; agent-side legs #21695 merged Oct 22; live proof call at the test property Oct 22 03:36 UTC: the hand-off dial leg (CA3b2dda50…) left FROM Clara’s own Fairhaven line +17208071724, the number the caller dialed; Willows rung proven |
| Exception | A hand-off to an outside service that serves the tenant directly (today: the maintenance call-center slot) shows the tenant's number, because such a service may act on the caller ID, never screens strangers and never forwards to Clara. Fede: "this is more like it." Keyed on the slot, never on a customer or a number. | Already how MCC is reached today |
| Loop guard | A call that comes back to Clara (from one of her own lines, or from a caller she is mid-hand-off with) is treated as "nobody answered": the ring list moves on, a single number takes a message, no second Clara greets. Alert on every bounce (Fede: "anytime there's an infinite loop it's an accident and we should be alerted"). Nothing remembered per number: Situs will forward nights and weekends only, so a mark would break their daytime hand-offs. | Alert: merged Oct 21 (#21636), live. Returned call counts as "nobody answered": merged Oct 21 (#21682), deploying |
| Deleted | The per-number caller-ID setting (and Joanna's entry): gone with #21668. The hand-typed rule that refused a customer's forwarded main line as a hand-off destination: removed by #21705 (merged Oct 22) on the dial paths the bounce guard protects (the connect tool and the on-call rung); it stays on the native transfer legs and the office-hours wrap, which have no bounce guard. The record of which lines are forwarded stays, because it also keeps Clara from reading that number out loud to callers. The dark "bridge" switch stays: still in use. | #21668 and #21705 merged |
| Case | Destination sees | Caller gets |
|---|---|---|
| Comcast-type main line (Camellia) | Clara's 844 | Office phones ring |
| RingCentral-type main line (Western Slope) | Clara's line, forwarded back anyway | One second of ringing, then Clara takes a message; we get the alert and point the destination at people or a direct office number on our routing card |
| Screening personal cell (Joanna) | Clara's line | Phone rings; whisper names the caller |
| Maintenance call center (MCC) | Tenant's own number | "Press 1 for a text" reaches the tenant; unchanged |
Rejected on the way (Oct 21): Clara's number everywhere with no exception ("absolutely not"); caller's number by default with a redial on bounce and a per-number memory ("very poor"); the per-number setting ("should not be a per number thing"); a rule by person vs company line (the office line is the team; putting it on the "caller's number" side is the Sep 23 mistake).
Build cut (fixes, no switch): PR 1 team hand-offs from Clara's line, exception on the call-center number, delete the setting (proof: Willows hand-off to a screening cell rings; a real Camellia office-line hand-off shows the 844 and nothing comes back; MCC leg shows the tenant's number). PR 2 a returned call is hung up at the door and treated as no answer, then the hand-kept list and bridge switch go (proof: a Willows destination forwarding back to the Willows line: alert, message prompt, no second Clara). PR 3 cleanup: on-site and emergency legs onto the same connect path.
Quick fix for Camellia (no code, on Fede's go): add the main line to JP&Co's existing per-number setting as "show Clara's line". Today Camellia's hand-off dials Joanna's cell, which already shows the 844, so nothing loops right now. PR 1 makes this entry unnecessary.
Recommendation: A, with B as the safety net. Together they fix Camellia and Yale the same way as every other customer.
| Option | Would have caught | |
|---|---|---|
| A ★ | Retire the Office phone fallback. A person-ask goes to a list or takes a message, never to a typed number. Camellia and Yale get a talk-to-a-person list. | 9, and future repeats of 8 |
| B | Loop alert: flag any transfer leg whose destination is a number Clara answers. On real legs it fired on 13 of 13 loops and 0 of 10 good transfers. | 9 on the first leg (Oct 13 09:09), and the WS Sep 22 loop |
| C | Change history on phone settings: who saved what, and when | Speeds up diagnosis of 8 and 9 |
| D | Build the forwarded-line list automatically from Twilio's "forwarded from" field. Doubtful: a Sep 20 Western Slope test showed Clara's own number there | 9, if it works |
| E | Daily "reached a human" rate per property, with an owner on the alert. Voicemail, Clara's own voice and "nobody to connect" count as misses | 4, 7, 8, 9 |
| F | Alerts on voice-platform failures, plus a fallback on the 844 line. The fallback is a Twilio config change, so it needs Fede's go | 1, 3, 6 |
Already done: transfer fields reject placeholders (#1329); empty-value guard (#8934); empty-dial protection (#9497); "hand-off reached no one" alerts (#15742, #17513).
Every phone and transfer setting, with screenshots and options for the settings redesign: Clara settings inventory.
rca/: joined.json, scan.json, per_day.csv, to_1057_all.json, history.md.