Como consertar o Conectividade Social ICP v2 quando tudo resolve dar errado

Introdução

O Conectividade Social ICP v2, da Caixa Econômica Federal, é um sistema que depende de:

  • Angular no navegador,
  • um assinador digital local (que escuta em 127.0.0.1),
  • certificado digital válido,
  • comunicação com a API da Caixa via HTTPS,
  • validação e envio de arquivos (ex: SEFIP),
  • um backend JBOSS julgando silenciosamente suas requisições.

Quando algo dá errado, tudo que você ganha é um erro 400, um 500, ou um mensagemErro: undefined no console.

Este post é um passo-a-passo técnico, baseado em experiências reais e longas noites de debug com esse sistema.


Pré-requisitos

  1. Certificado digital válido (tipo A1 ou A3).
  2. Assinador digital da Caixa instalado e rodando.
  3. Navegador atualizado (Chrome, Edge ou Firefox).
  4. Java (caso o sistema ainda peça — sim, alguns ainda usam).
  5. Permissões corretas no Java, firewall e proxy.

Diagnóstico geral

Use o F12 do navegador (Console e Rede) e siga os sintomas abaixo:


1. “ClientAPI não foi instanciado”

O assinador local não está rodando.

Solução:

  • Verifique se o serviço CxDSign ou equivalente está realmente ativo: netstat -an | find "9171" ou
    Acesse diretamente: http://127.0.0.1:9171
  • Se não responder, reinicie o serviço do assinador.

2. Erro de CORS com jsonip.com ou APIs da Caixa

“The ‘Access-Control-Allow-Origin’ header contains multiple values ‘‘, ‘‘…”

Solução:

  • Esse erro é do lado do servidor remoto.
  • Não há o que você possa fazer no frontend.
  • Alternativa: usar um proxy reverso ou substituir por IP fixo no código.

3. Erro 400 ou 500 na chamada para cx-postal-api/api/arquivo/grava

Geralmente indica XML ou JSON malformado, ou o assinador falhou silenciosamente.

Solução:

  • Verifique o conteúdo enviado (via aba Network do DevTools).
  • Valide se:
    • O arquivo foi assinado corretamente.
    • O certificado está ativo e válido.
    • O JSON de envio tem todos os campos obrigatórios.

4. Erro de Java ou assinador não iniciando

Solução:

Abra o Painel de Controle do Java e adicione os seguintes sites em:

Segurança > Editar Lista de Sites
https://conectividadesocialv2.caixa.gov.br
http://localhost
https://127.0.0.1
  • Mantenha o nível de segurança em “Alta”.
  • Use Java 8 entre update 211 e update 291 se for necessário.
  • Verifique este arquivo:
C:\Users\SEU_USUARIO\AppData\LocalLow\Sun\Java\Deployment\security\exception.sites

5. Erro: Cannot set properties of undefined (setting ‘mensagemErro’)

O sistema tentou acessar uma propriedade de um objeto undefined.

Solução:

O código está mal defensivo. Em desenvolvimento próprio, o ideal seria algo assim:

if (this.objeto && this.objeto.mensagemErro !== undefined) {
   this.objeto.mensagemErro = "Falhou";
}

Mas como isso é do sistema da Caixa, só nos resta atualizar a página e torcer.


Reinstalando o assinador local

  1. Feche o navegador.
  2. Desinstale o assinador (se necessário).
  3. Baixe novamente do portal oficial da Caixa.
  4. Instale como administrador.
  5. Execute manualmente o .exe e verifique a escuta em 127.0.0.1.

Certificado A3 via token ou cartão?

Possíveis causas de falha:

  • Driver do token não instalado.
  • Cadeia de certificados incompleta.
  • O assinador não reconhece o certificado.

Soluções:

  • Instale o driver correto (Safenet, GD, etc.).
  • Instale o certificado da cadeia da ICP-Brasil.
  • Teste com o validador oficial:
    https://validar.iti.gov.br

Considerações finais

Esse sistema não foi feito para automatização. Ele exige:

  • um ritual de configuração que beira o xamanismo digital,
  • uso de navegador, Java, certificado e serviço local em perfeita harmonia,
  • e paciência diante de erros sem stacktrace.

Dica para devs avançados

Você pode monitorar, interceptar e alterar as requisições Angular ↔ Assinador usando:

  • Proxy reverso local (com http-proxy-middleware ou nginx)
  • Monkey patch no JS original do sistema
  • Captura do request assinado e replay posterior (com curl, postman, ou script próprio)
Rolar para cima