Em alguns casos de erro de envio do CFeSAT, o retorno vindo do aparelho, é o misterioso "Erro Desconhecido" .

Geralmente, esse erro ocorre por dois motivos: Falha de esquema no arquivo XML ou falha de comunicação com o aparelho SAT.

O ponto mais eficiente a se atacar a primeiro, seria a verificação da falha de esquema e para isso, vamos precisar do arquivo do XML de envio do SAT. 
Esse arquivo estará no diretório de logs que foi configurado na propriedade "DiretorioLog". O arquivo de envio terá o sufixo "-env-cfe.xml". 

Com posse do XML de envio do CFeSAT, você vai precisar validar ele no validador do XML. Para isso, podemos utilizar o validador de XML da Tanca, que é nossa parceira. Ele valida todos os XML de envio, independente marca do equipamento no qual ele foi gerado. Nesse post , nós explicamos como conseguir o validador (fique tranquilo, é gratuito, leve e nem precisa instalar) e como realizar a validação.

Se a validação do XML retornar "OK", então o problema pode ser na conexão com o aparelho SAT. Os passos são os seguintes:
- Abra o aplicativo de ativação do fabricante (geralmente ele se encontra na área de trabalho) e tente realizar os testes fim a fim. Esse teste vai verificar se a comunicação está normal entre a máquina e o aparelho.
Se o retorno do teste também for "Erro Desconhecido", o recomendável é que se entre em contato com o suporte da fabricante para que possam verificar o problema da conexão.

- Quando os testes pelo aplicativo retornam sucesso, temos que verificar a DLL de comunicação e a porta de comunicação.

DLL : Acesse o portal da fabricante e realize o download da versão da DLL compatível com o aparelho SAT utilizado no cliente e reconfigure a DLL no propriedade "NomeDllSat" do componente. Verifique se essa pasta onde a DLL está, possui permissão total de acesso e que ela também não esteja sob verificação do antivírus;

PORTA : Tente desligar o aparelho e trocar a porta USB em que ele está conectado à máquina. Se possível, tente reiniciar a máquina também.

Algumas marcas possuem algumas particularidades para que a comunicação funcione sem problemas;
Dimep : juntamente com a DLL de comunicação, deve-se colocar a zlib.dll.
Elgin : juntamente com a DLL de comunicação, deve-se colocar a zlib.dll.
Bematech : essa marca possui um arquivo de configuração chamado bemasat.xml. Ele estará nas pastas de instalação da bematech. Edite esse arquivo e vai encontrar uma opção de configuração de porta. A porta COM configurada nesse arquivo, deve ser a mesma na qual o equipamento está conectado (é possível confirmar a porta USB do aparelho, pelo gerenciamento do computador).