I’m working on a Performer built on REFramework that processes PDF files from an Orchestrator Queue.
The Performer flow is:
Get Transaction Item
Read file path from SpecificContent("FilePath")
Read PDF With OCR (Tesseract OCR)
Process the document
Set Transaction Status
Everything works correctly when I let the workflow finish.
However, if I stop the workflow manually during debugging (after the queue item has already been retrieved), the queue item remains In Progress in Orchestrator.
When I run the Performer again, I sometimes get:
Assign: Object reference not set to an instance of an object.
Yes, this is expected. When you manually stop the process (Stop button in Studio) mid-transaction, REFramework never reaches the “Set Transaction Status” step, so the queue item stays locked as “In Progress” from Orchestrator’s point of view, so nothing tells Orchestrator the transaction ended.
Orchestrator locks a queue item to the robot/session that called “GetTransactionItem”. That lock persists until one of:
SetTransactionStatus (Success/Failed/Retry) is called, or
The queue’s configured item SLA/lock timeout expires (default is no auto-timeout), or
So, any transaction item struck in In Progress state will stay until 24 hours and then it will be converted to Abandoned state if you leave it as is. If you want to retry the item again just enable the toggle button above.
Your “in_TransactionItem is Nothing” when the next run happens because GetTransactionItem returns Nothing when there’s no item currently available.
You can remove the transaction which will delete the item and you can add it again through dispatcher or manually upload the csv file into the queue.
Don’t hard-stop mid-transaction. Instead, put a breakpoint after Set Transaction Status or use Step Into/Over so the transaction always completes its status update, even during debugging.
If you must hard-stop, get in the habit of immediately going to Orchestrator and removing the In Progress item if you do not want to leave it in that state and adding the item again through Dispatcher or Queue Upload Item option.
Add a null-check on in_TransactionItem after Get Transaction Item to avoid the raw NullReferenceException.
For iterative debugging, test “Process.xaml” standalone with a mocked transaction item instead of pulling from the live queue.