Olá.
Devido esse problema tive que deixar para outro momento esse desenvolvimento e estou retornando agora.
Fizemos os testes em outros ambientes e sempre retornou esse erro -16 sem mensagem, até mesmo em ambientes que estão com acesso livre à internet.
Revisando o fonte com minha equipe, sugerimos adicionar um except nessa linha destacada:
try
ACBrCTe1.WebServices.DistribuicaoDFe.cUFAutor := AcUFAutor;
ACBrCTe1.WebServices.DistribuicaoDFe.CNPJCPF := ACNPJCPF;
ACBrCTe1.WebServices.DistribuicaoDFe.ultNSU := AultNSU;
ACBrCTe1.WebServices.DistribuicaoDFe.NSU := '';
ACBrCTe1.WebServices.DistribuicaoDFe.chCTe := '';
ACBrCTe1.WebServices.DistribuicaoDFe.Executar;
Resp := TDistribuicaoDFeResposta.Create(Config.TipoResposta, Config.CodResposta);
try
Resp.Processar(ACBrCTe1.WebServices.DistribuicaoDFe.retDistDFeInt,
ACBrCTe1.WebServices.DistribuicaoDFe.Msg,
ACBrCTe1.WebServices.DistribuicaoDFe.NomeArq,
ACBrCTe1.WebServices.DistribuicaoDFe.ListaArqs);
Resposta := Resp.Gerar;
finally
Resp.Free;
end;
MoverStringParaPChar(Resposta, sResposta, esTamanho);
Result := SetRetorno(ErrOK, Resposta);
except
on E: Exception do
begin
if Trim(ACBrCTe1.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo) = '' then
raise EACBrLibException.Create(ErrRetorno, E.Message) //----------- AQUI
else
raise EACBrLibException.Create(ErrRetorno, ACBrCTe1.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo);
end;
end;
Esse except ajudará verificar outros excepts dentro do "ACBrCTe1.WebServices.DistribuicaoDFe.Executar", pois da forma atual, ele só trará erros contidos no "ACBrCTe1.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo", sendo que pode ser que nem foi feita a solicitação no WebServices, assim ocultando o erro.
Caso seja possível fazer essa alteração, favor informar em qual versão estará.
Fico no aguardo.