From 6c9d12559da83816406e122a00f7cebababca60e Mon Sep 17 00:00:00 2001 From: Rodribm10 Date: Tue, 21 Apr 2026 18:59:45 -0300 Subject: [PATCH] fix(captain): generate_pix returns success=false on real errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When Inter integration fails ("Unit not configured for Pix", missing certs, etc.), the tool was returning success=true with the error message as formatted_message. The LLM interpreted that as success and hallucinated "Pix generated" to the customer — and never triggered the generate_reservation_link fallback. Switch the rescue path from tool_feedback_response (success=true) to error_response (success=false) so the Daniela scenario correctly falls back to the reservation-link tool as documented in her prompt. --- enterprise/app/services/captain/tools/generate_pix_tool.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/enterprise/app/services/captain/tools/generate_pix_tool.rb b/enterprise/app/services/captain/tools/generate_pix_tool.rb index c8e93538e..28891d906 100644 --- a/enterprise/app/services/captain/tools/generate_pix_tool.rb +++ b/enterprise/app/services/captain/tools/generate_pix_tool.rb @@ -440,7 +440,10 @@ class Captain::Tools::GeneratePixTool < Captain::Tools::BaseTool mapped_error = map_pix_error_message(e) return mapped_error if mapped_error.is_a?(Hash) - tool_feedback_response(mapped_error) + # Erro real na geração do Pix deve voltar success: false pra LLM + # cair no fluxo de fallback (generate_reservation_link) em vez de + # alucinar que o Pix foi gerado. + error_response(mapped_error) end def map_pix_error_message(error)