Skip to content

feat(errors): 401 pós-upgrade mostra "plano sendo ativado" (não "faça login") - #13

Merged
ImPedro29 merged 2 commits into
mainfrom
feat/plan-provisioning-message
Jul 30, 2026
Merged

feat(errors): 401 pós-upgrade mostra "plano sendo ativado" (não "faça login")#13
ImPedro29 merged 2 commits into
mainfrom
feat/plan-provisioning-message

Conversation

@Mafralpm

@Mafralpm Mafralpm commented Jul 30, 2026

Copy link
Copy Markdown

Problema

Um 401 de provisioning pós-upgrade não deve mandar o usuário para login, mas mensagens genéricas de crédito também não podem ser tratadas como prova de que houve upgrade.

Implementação

  • aceita o código estruturado plan_provisioning somente no router Verboo e mostra a mensagem afirmativa de ativação
  • mantém compatibilidade com a mensagem legada exata usando texto neutro, sem afirmar que houve upgrade
  • classifica códigos reais de crédito esgotado como billing_error, sem mensagem de ativação
  • não aplica a regra a providers ou endpoints externos
  • mantém o fluxo de login para erros reais de autenticação

Contrato recomendado do backend

O router deve enviar error.code igual a plan_provisioning. Respostas legadas Not Enough Credits continuam suportadas de forma conservadora.

Validação

  • 5 testes específicos: código de provisioning, legado, provider externo, crédito esgotado e autenticação real
  • 26 testes focados de erros e classificação passaram
  • smoke/build passou

@gemini-code-assist

Copy link
Copy Markdown

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@Mafralpm
Mafralpm force-pushed the feat/plan-provisioning-message branch from d2dbb0d to f2adc80 Compare July 30, 2026 00:08
Mafra and others added 2 commits July 30, 2026 20:37
… login")

Logo apos um upgrade de plano, o entitlement leva 1 a 2 min pra propagar e o
router responde 401 "Not Enough Credits". O handler generico de 401/403
mandava o usuario fazer /login, mensagem errada (login nao resolve) e no pior
momento (recem pagou). Aconteceu com um cliente MAX e virou ticket.

Adiciona um caso antes do handler generico que detecta o 401 de
billing/provisionamento e mostra "seu plano esta sendo ativado, tente em
instantes" (tipo billing_error, que nao dispara o fluxo de login). Espelha o
padrao ja existente do "Credit balance is too low".

401 de autenticacao real segue indo pro /login (sem regressao).

Testes:
- errors.planProvisioning.test.ts (novo): (1) 401 "Not Enough Credits" produz
  a mensagem de ativacao e NAO contem "/login"; (2) 401 de auth real continua
  contendo "/login".
- Regressao errors.openaiCompatibility.test.ts: 5 pass.
- bun run build ok; tsc 0 erros novos.

Nota: match pela mensagem retornada; ideal e o router expor um codigo estavel
(registrado no comentario do codigo).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ImPedro29
ImPedro29 force-pushed the feat/plan-provisioning-message branch from f2adc80 to 962848e Compare July 30, 2026 23:37

@ImPedro29 ImPedro29 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aprovado após restringir a classificação ao router Verboo. Provisioning estruturado, legado neutro, crédito esgotado e autenticação real estão separados e cobertos. Validação: 26 testes focados, smoke/build e todos os checks do PR verdes.

@ImPedro29
ImPedro29 merged commit 9d9fc3a into main Jul 30, 2026
8 checks passed
@ImPedro29
ImPedro29 deleted the feat/plan-provisioning-message branch July 30, 2026 23:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants