--- name: ura-token-sync-2026-05-12 description: URA campanhas nao discavam por token dessincronizado entre intranet .env e ura_api.py do Magnus metadata: node_type: memory type: project originSessionId: 3cc4e2da-474d-47ee-96aa-7e15c6fdf186 --- # URA campanhas — token dessincronizado (2026-05-12) **Sintoma**: campanha em `/ura-campanhas` clicava "Disparar agora", marcava destinatario como `falhou`, campanha virava `concluida` sem nenhuma ligacao acontecer. **Causa raiz**: 3 tokens distintos no fluxo URA, intranet → Magnus rejeitado com `HTTP 403 "Token invalido"`: | Local | Token | |---|---| | Intranet `.env` (`CRON_TOKEN_SECRETO`) | `8d861609d45de...` | | Magnus `/home/customer/ura_api.py` (`TOKEN_SECRETO`) | `58253c6ba4027...` | | Fallback hardcoded `UraCampanhas.php` / `CronUraCampanhas.php` | `741e87d3a8a9...` | Controllers usam `getenv('CRON_TOKEN_SECRETO') ?: '741e87...'` — com `.env` setado, usavam `8d861609...`. Magnus rejeitava porque tinha `58253c6ba...`. Mesmo padrao do incidente [[magnus_cobranca_api_token_2026_05_11]]: cobranca_api foi sincronizado no dia 11, mas `ura_api.py` ficou esquecido (rodando desde Apr30). **Fix aplicado**: - Backup: `/home/customer/ura_api.py.bak_20260512_095353` - Linha 28 de `ura_api.py`: `TOKEN_SECRETO` trocado para `8d861609d45de8eacfa5481302fddcc85f25b23f5794aeb6bbdd791ec39f219a` - Restart so do ura_api: `pkill -f 'python3 /home/customer/ura_api.py' && nohup python3 /home/customer/ura_api.py > /tmp/ura_api.log 2>&1 &` - `cobranca_api.py` (porta 8880) NAO foi tocado. **Why**: Magnus tem 2 servicos Python paralelos — `cobranca_api.py` (8880) e `ura_api.py` (8881). Quando token muda no `.env` da intranet, ambos precisam ser atualizados. Comum esquecer um. **How to apply**: ao trocar `CRON_TOKEN_SECRETO`, verificar todos os scripts Python do Magnus: ```bash plink -pw '3mDxRgKbtE' -batch -no-antispoof customer@69.197.165.194 \ "grep -E '^TOKEN_SECRETO' /home/customer/*.py" ``` Sincronizar todos com `.env` da intranet. Restart cada servico individualmente (nao matar tudo de uma vez — `cobranca_api.py` em producao). **Detritos a limpar quando refatorar**: - Fallback hardcoded `741e87d3a8a9...` em `UraCampanhas.php:24` e `CronUraCampanhas.php:23` — token "fantasma" que nem o Magnus nem o `.env` usam. Pode ser substituido por `throw` ou `''`. Ver tambem [[ura_reversa_modulo]], [[servidor_magnus]].