Error receiving data: (12002)

Estou emitindo várias notas fiscais de serviços e a cada 4 ou 5 notas, quando vou recuperar os dados da nota emitida, recebo o erro: ‘Error receiving data: (12002) O tempo limite da operação foi atingido’.

Como evitar ou contornar esse problema?

Esse erro é simplesmente um erro de timeout. Pode ser alguma lentidão na sua comunicação com o servidor, ou o tempo de timeout que você configurou pode estar muito baixo.

Como alterar o tempo timeout?

Essa mensagem aparece após cerca de 10 segundos após solicitar os dados da NF, então acho que o padrão deve ser 10 segundos.

Qual é um tempo “seguro” para o timeout de modo a evitar esse erro?

@samuel1
Aqui adotamos 10 segundos com o NuvemFiscal, e historicamente funciona bem.
Outros serviços têm prazos diferentes, chegando a 60 segundos.
Esta alteração é feita no software que você está utilizando.
Em nosso caso, somos o próprio desenvolvedor da nossa ferramenta, então fizemos nós mesmos esta atualização.

@samuel1

Você pode informar qual endpoint exatamente está retornando esse erro?

Pergunto isso porque a emissão de NFS-e na Nuvem Fiscal é processada de forma assíncrona. O endpoint de envio/emissão apenas registra o pedido e retorna rapidamente, enquanto o processamento junto à prefeitura ou ambiente nacional ocorre após a sua requisição ter sido respondida.

Dessa forma, um timeout de 10 segundos deveria ser mais do que suficiente para o endpoint de emissão em si.

Os dados da nota de serviços que deve ser emitida são enviados através do EmitirNfsDps:

Nfse := Client.Nfse.EmitirNfseDps(PedidoEmissao);

A rotina aguarda 15 segundos para que dê tempo da nota ser emitida e depois solicita os dados da nota fiscal usando o ListarNfse:

Sleep(15000);
Notas := Client.Nfse.ListarNfse(1, 0, False, '<CNPJ>', <referência>,  <ambiente>, '', '');

É no ListarNfse que ocorre o erro 12002 (como eu disse, a cada 4 ou 5 notas recebo o erro de timeout).

@samuel1

Você poderia reproduzir essa requisição ao endpoint de listagem pelo Postman (ou outro rest client), verificar os tempos de resposta e nos informar, por gentileza?

Posso, mas não sei como fazer. :grimacing:

Por favor, envie um programa de exempo.