PetitionForm — Lead dentro do try pode transformar assinatura commitada em erro (retry duplica) #117

Closed
opened 2026-08-19 23:51:27 +00:00 by fsolla · 1 comment
Owner
id depends serializes priority kind
petition-form-lead-try
P3 chore

Origem: simplify/capture-review-debts do S10 (#94, 2026-08-19).

No PetitionForm (abaixo-assinados), trackMetaLead(pixelId, title, crypto.randomUUID()) roda DENTRO do try do submit (src/components/PetitionForm.tsx:61-63). Se crypto.randomUUID lançar (contexto não-secure — HTTP/staging; navegadores antigos), o catch mostra "Falha ao enviar assinatura" mesmo com a assinatura já commitada — o usuário tenta de novo, criando assinatura duplicada (ou recusa de telefone único) e re-disparando o Lead.

O CampaignNewsletterForm (S10) tinha o mesmo padrão e foi corrigido no S10 (guarda interna try/catch: tracking nunca falha uma captura commitada). O PetitionForm deve receber o mesmo tratamento (~4 linhas).

Ação: envolver o bloco de tracking do PetitionForm em try/catch próprio, ou mover para fora do try de submit — padrão idêntico ao aplicado em CampaignNewsletterForm.

--- id: petition-form-lead-try depends: [] serializes: [] priority: P3 kind: chore --- **Origem:** simplify/capture-review-debts do S10 (#94, 2026-08-19). No `PetitionForm` (abaixo-assinados), `trackMetaLead(pixelId, title, crypto.randomUUID())` roda DENTRO do `try` do submit (src/components/PetitionForm.tsx:61-63). Se `crypto.randomUUID` lançar (contexto não-secure — HTTP/staging; navegadores antigos), o `catch` mostra "Falha ao enviar assinatura" mesmo com a assinatura já commitada — o usuário tenta de novo, criando assinatura duplicada (ou recusa de telefone único) e re-disparando o `Lead`. O `CampaignNewsletterForm` (S10) tinha o mesmo padrão e foi corrigido no S10 (guarda interna try/catch: tracking nunca falha uma captura commitada). O `PetitionForm` deve receber o mesmo tratamento (~4 linhas). **Ação:** envolver o bloco de tracking do `PetitionForm` em try/catch próprio, ou mover para fora do try de submit — padrão idêntico ao aplicado em `CampaignNewsletterForm`.
fsolla added the
kind:chore
label 2026-08-19 23:52:11 +00:00
Author
Owner

Tracker migrado para o GitHub — continue em #gh766 (github.com/fsolla/teqo/issues/766). Esta Issue Forgejo está fechada.

Tracker migrado para o GitHub — continue em #gh766 (github.com/fsolla/teqo/issues/766). Esta Issue Forgejo está fechada.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: fsolla/teqo#117
No description provided.