Http timeout expired - Add Queue Item And Get Reference

Hi, I’m using Orchestrator Process to run a longrunning background job.
The process loops a dictionary with Parallel For Each and adds to Queue Item and waits for the Queue and resume. Because of the limit in API of +100 items I’m running in batches of 50 rows to the queue.
The job fails after less than 30 mins with error Http timeout expired for UiPath

Has anyone of you seen this and what could be the reason for the error?

@pethe

As per on of the old thread it says because of version issues…

Try checking with changing the persistent activity version and see if that helps

cheers

Hi @pethe

Hope this might help you solve the error HTTP timeout expired.
I have used Persistence.Activities <= 1.2.2 version and HTTP timeout issue no longer exists.

Hope it helps!!

I have already tried the old versions according to the posts. The posts are from 2021, and are not really applicable for me.
However, I did a workaround and created even smaller batches of queues (10 rows per batch) and it seems to work so far. My theory is that when the background job starts and adds parallel queues, the background job goes into suspended mode. When the first transaction in the queue is finnished, the background job goes to resume mode and stays there waiting for the rest of the transactions in the queue to complete. I believe this is why I get the timeout.
With a batch of 10 rows (takes approx 15 sec. per row) the timeout does not happen.

Thanks anyway for your effort…

1 Like

@pethe

Really like the way you gave it a thought…

But ideally why would the orch http be timed out if the queue is in suspended…there might be other thing like…when you have higher number of items getting added then your resume also is working with api and the current job also and both of them
Together might be reaching the limit

Cheers

Yes I see your point… I’ll try to explain in more detail what is happening while running the job.
There is only one unattended robot executing all jobs.

  1. A user uploads Excel sheet to storage bucket. The sheet contains approx. 240 rows.
  2. A background job starts (job1), analyzing the excelsheet and creates a dictionary with all rows that should be processed.
  3. In a Parallel for Each activity, Queue items are created for each row (queue1), we now have 240 new transactions. job1 goes to suspended mode waiting for queue1 to finnish.
  4. Job2 starts (runs in foreground with GUI), triggered by the queue1
  5. When the first (1) transaction has completed, job1 changes from suspended to resumed state (still waiting for the 239 remaining transactions).
    6 After all of the transactions has finnished, job1 goes back to running state.

Conclusions:
When running all 240 rows in one batch I’ll get “GetAccessToken timed out”
When running in batches of 50 rows I’ll get “Http timeout expired”
When running in batches of 10 rows it works as expected (it might work with 20 but that is not yet tested).

This is ok by me for now but what bothers me is that I’m not sure of which limit it is that prohibits me to send larger batches of rows. Plus if it’s a limit, then is that configurable by me or is it hardcoded by UiPath?

2 Likes

@pethe

It is a hardcoded one only …when parallel requests are there it is treated as malware and the responses stop

You explanation makes more sense now. Really appreciate the analysis

cheers

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.