Item da fila permanece "Em Progresso" após parar o Performer durante a depuração - Referência de objeto na próxima execução

Olá a todos,

Estou trabalhando em um Performer construído sobre o REFramework que processa arquivos PDF de uma Fila do Orchestrator.

O fluxo do Performer é:

  • Obter Item da Transação
  • Ler o caminho do arquivo de SpecificContent("FilePath")
  • Ler PDF com OCR (Tesseract OCR)
  • Processar o documento
  • Definir Status da Transação

Tudo funciona corretamente quando deixo o fluxo de trabalho terminar.

No entanto, se eu parar o fluxo de trabalho manualmente durante a depuração (após o item da fila já ter sido recuperado), o item da fila permanece Em Andamento no Orchestrator.

Quando executo o Performer novamente, às vezes recebo:


Atribuir: Referência de objeto não definida para uma instância de um objeto.

nesta linha:


pdfPath = in_TransactionItem.SpecificContent("FilePath").ToString

porque in_TransactionItem é Nada.

Após esperar alguns minutos, o fluxo de trabalho começa a funcionar novamente sem nenhuma alteração no código.

Minhas perguntas:

  1. Esse comportamento é esperado quando se para um Performer no meio do processamento?
  2. O Orchestrator mantém o item da fila bloqueado até que a sessão do robô ou o bloqueio da fila expire?
  3. Existe uma maneira recomendada de liberar um item da fila Em Andamento enquanto depura?
  4. Como você normalmente depura Performers sem deixar itens da fila no estado Em Andamento?

Estou usando:

  • UiPath Studio 2026.0.198 STS
  • REFramework
  • Performer baseado em Fila
  • Ler PDF com OCR (Tesseract OCR)

Qualquer orientação seria apreciada.

Obrigado!

Oi @Abhinay_Reddy1,

Sim, isso é esperado. Quando você para manualmente o processo (botão Parar no Studio) no meio da transação, o REFramework nunca atinge a etapa “Definir Status da Transação”, então o item da fila permanece bloqueado como “Em Andamento” do ponto de vista do Orchestrator, portanto, nada informa ao Orchestrator que a transação terminou.

O Orchestrator bloqueia um item da fila para o robô/sessão que chamou “GetTransactionItem”. Esse bloqueio persiste até que um dos seguintes eventos ocorra:

  • SetTransactionStatus (Sucesso/Falhou/Tentar Novamente) seja chamado, ou
  • O SLA/tempo de bloqueio configurado do item da fila expire (o padrão é sem expiração automática), ou
  • Alguém intervenha manualmente no Orchestrator.


Portanto, qualquer item de transação preso no estado Em Andamento permanecerá por 24 horas e, em seguida, será convertido para o estado Abandonado se você deixá-lo assim. Se você quiser tentar o item novamente, basta habilitar o botão de alternância acima.

Sua “in_TransactionItem é Nothing” quando a próxima execução acontece porque GetTransactionItem retorna Nothing quando não há item disponível no momento.

Você pode remover a transação, o que deletará o item, e você pode adicioná-lo novamente através do dispatcher ou fazer o upload manual do arquivo csv na fila.

  • Não interrompa de forma abrupta no meio da transação. Em vez disso, coloque um ponto de interrupção após Set Transaction Status ou use Entrar/Passar para que a transação sempre complete sua atualização de status, mesmo durante a depuração.
  • Se você precisar interromper de forma abrupta, acostume-se a ir imediatamente ao Orchestrator e remover o item Em Andamento se não quiser deixá-lo nesse estado e adicionar o item novamente pelo Dispatcher ou pela opção de Upload de Item da Fila.
  • Adicione uma verificação de nulo em in_TransactionItem após Get Transaction Item para evitar a exceção de referência nula.
  • Para depuração iterativa, teste “Process.xaml” de forma independente com um item de transação simulado em vez de puxar da fila ativa.

Espero que isso ajude.

Saudações!