--- name: LATAM Money + Pass diagnóstico 2026-05-11 description: Causa raiz LATAM Money/Pass = puppeteer detectado pela Akamai LATAM mesmo via IP residencial. Solução real = solver dedicado VM (estilo smiles-solver). type: project originSessionId: 2599d295-29b1-43d3-93f7-6b44de3bf1d6 --- # Diagnóstico LATAM Money + Pass — 2026-05-11 ## Estado encontrado | Scraper | Porta | Stack | Estado | |---|---|---|---| | scraper-latam-money | 3038 | puppeteer-extra+stealth + akamai-solver:40510 + proxy 40506 | ~0% antes do fix | | scraper-latam-miles (Pass) | 3012 | puppeteer-extra+stealth + Auth0 login + CapSolver | rate-limited 100% | | scraper-latam-pass-brl | 3011 | proxy-to-3012 | só repassa | ## Investigação LATAM Money 1. Logs mostravam `Solver: 0 cookies` → fallback fetch → BFF status 400 → 0 voos 2. **proxy-bridge-gol (40506) está QUEBRADO** (HTTP 000 timeout) — TODOS os scrapers que usam essa porta sofrem 3. **proxy-bridge-vm (40520)** = VM ADV-22 com IP residencial V.tal BH 186.247.226.26 — funciona perfeitamente 4. Akamai solver direto sem proxy: 22 cookies em 34s ✓ 5. Akamai solver via 40506: vazio (proxy quebrado) 6. Akamai solver via 40520: 22 cookies em 48s ✓ MAS `validatedAbck:false` (cookies parciais) ## Fix #1 aplicado e mantido - `latam-money/index.js:33`: `PROXY_BRIDGE_PORT 40506 → 40520` - `latam-pass-miles/index.js:1655`: `performLogin(page, true)` → `performLogin(page, false)` (CapSolver desativado conforme "Sem gastos extras") - Backups: `*.bak-pre-40520-*` / `*.bak-pre-nocap-*` / `*.bak-pre-strict-*` Resultado parcial: LATAM Money passou de 0% → ~33-41% (alguns proxies do pool ainda funcionam pro abck parcial). ## Causa raiz REAL descoberta (não bandaid) Adicionei params `strict=true&maxIterations=20` no akamai-solver e testei: ``` [Solver] strict=true: _abck nao validou em 12 iteracoes (www.latamairlines.com) [Solver] strict=true: _abck nao validou em 20 iteracoes (www.latamairlines.com) ``` **Mesmo com 20 iterações (40-60s) de mouse/scroll/click humanizado + IP residencial BR + cookies do solver, _abck NÃO valida no puppeteer.** Confirma a memória `project_latampass_vm_attempt_2026_05_05.md`: > "puppeteer-extra+stealth é detectada por Auth0/Akamai LATAM mesmo via VNC manual funciona" A diferença é **TLS/JA3 fingerprint**: puppeteer-extra modifica handshake, Akamai detecta. Chrome stable via `connectOverCDP` mantém TLS stock e passa. ## Modificações mantidas no akamai-solver Adicionei params opcionais ao solver (default mantido, **não afeta Smiles/Delta/Azul**): - `?strict=true` → solver retorna `success:false` se _abck não validar - `?maxIterations=N` → controla N tentativas (default 5) - Cache ignorado se `strict && !abckValid` Backup: `/opt/skymilhas/scrapers/akamai-solver/index.js.bak-pre-strict-*` Esses params não estão sendo USADOS por nenhum scraper hoje (LATAM Money foi revertido). Ficam disponíveis pra próximo solver VM. ## Solução real (não aplicada — pendente decisão) Criar `/opt/latammoney-solver/` na VM ADV-22 idêntico ao padrão smiles-solver: ``` [Servidor scraper-latam-money 3038] → HTTP /search → http://100.91.20.22:9097/search │ [adv-22 :9097] ├── systemd: latammoney-solver.service ├── Chrome stable real (CDP --remote-debugging-port=9223) ├── --use-gl=swiftshader --enable-webgl ├── playwright-core connectOverCDP ├── DISPLAY=:99 (Xvfb) └── user-data-dir persistente ``` Fluxo: `page.goto(searchUrl)` → intercepta BFF `/bff/air-offers/v2/offers/search` → retorna body cru. Estimativa: 1-2h se padrão idêntico ao smiles-solver. Replica pra adv-23 depois. **Why:** Jesiel pediu "atacar causa raiz, deixar funcional". Stack puppeteer no servidor não passa Akamai LATAM. Igual aconteceu com Smiles em 02/05, TAP em 30/04, GOL em 03/05 — todos foram resolvidos com solver Chrome-real CDP-spawn na VM. **How to apply:** Próxima sessão, criar latammoney-solver.mjs na adv-22 + apontar scraper. LATAM Pass espera (depende de login Auth0 mais complexo). ## Pendências priorizadas **P0 LATAM Money**: criar latammoney-solver.mjs na adv-22 — estimativa 1-2h **P1 LATAM Pass**: mesma stack do Money + login Auth0 + IMAP 2FA — estimativa 3-4h (espera adv-23 voltar + IMAP whitelist) **P2 proxy-bridge-gol (40506)**: investigar por que quebrou. Possivelmente afeta GOL também