11.1 Queue Architecture, SpecificContent & Transaction Lifecycles
Key Takeaways
Queues hold an unlimited number of items and hand each item to one robot at a time, which lets many performers share the work.
SpecificContent is a Dictionary(Of String, Object) limited to 256,000 characters or 512,000 bytes; larger data belongs in storage buckets.
Item statuses are New, In Progress, Successful, Failed, Retried, Abandoned (after about 24 hours In Progress), and Deleted.
Output and Analytics dictionaries, set with Set Transaction Status, record results and business metrics; optional JSON schemas validate the data.
Performers need Queues View plus Transactions View and Edit, and dispatchers need Transactions Create.
11.1 Queue Architecture, SpecificContent & Transaction Lifecycles
Core Concept: In enterprise Robotic Process Automation (RPA), Orchestrator Queues provide a centralized, asynchronous messaging and work-distribution backbone. By storing atomic transaction payloads that are handed out by priority, deadline, and age, queues decouple data ingestion (the Dispatcher process) from execution (the Performer process), enabling parallel execution across elastic pools of unattended robots while ensuring strict data isolation and auditable lifecycle tracking.
In high-volume automation programs, managing work items through local files, shared network spreadsheets, or direct database queries introduces severe concurrency bottlenecks, file locking contention, and single points of failure. UiPath Orchestrator Queues solve these challenges by functioning as an enterprise-grade message broker and state machine. Each unit of work uploaded to a queue becomes an autonomous transactional entity with its own metadata, processing history, payload dictionaries, retry counters, and SLA parameters.
1. Architectural Foundations of Orchestrator Queues
At its core, an Orchestrator Queue is a container that can hold an unlimited number of items, hosted by UiPath Orchestrator. The architecture is engineered around the Producer-Consumer design pattern, widely known in UiPath architecture as the Dispatcher and Performer model:
- The Dispatcher (Producer): A dedicated, lightweight workflow responsible for extracting raw business records from external systems—such as ERP systems, relational databases, customer service ticketing platforms, or incoming mailboxes—and loading them into an Orchestrator Queue as discrete queue items using activities like
Add Queue ItemorBulk Add Queue Items. - The Performer (Consumer): One or more independent, unattended robot instances running the Robotic Enterprise Framework (REFramework). Each Performer calls the
Get Transaction Itemactivity to atomically fetch the next eligible item from the queue, transition it toIn Progress, execute the underlying business logic, and commit the final status back to Orchestrator viaSet Transaction Status.
Benefits of Queue-Based Decoupling
- Elastic Horizontal Scalability: Because the state of each transaction is maintained centrally in Orchestrator rather than in robot memory, multiple Performer robots can consume items simultaneously from the same queue without race conditions or duplicated processing.
- Atomic Concurrency Control: When a robot invokes
Get Transaction Item, Orchestrator hands that item to one robot and moves it toIn Progress, so no other robot receives the same item. - Centralized Governance & Auditing: Every state change, timestamp, machine identity, processing duration, and error message is immutably logged in the Orchestrator database, satisfying stringent compliance and operational reporting mandates.
- Fault Isolation: The failure of an individual transaction item—whether caused by corrupted data or a crashed local application—does not corrupt or halt the processing of subsequent items in the queue.
2. Transaction Payloads: SpecificContent, Output, and Analytics
An Orchestrator Queue Item (UiPath.Core.QueueItem) is not merely a string identifier; it is a rich object containing three distinct data dictionaries alongside contextual system metadata:
+----------------------------------------------------------------------+
| UiPath.Core.QueueItem |
| |
| Metadata: Id, Key, Reference, Priority, DeferDate, DueDate, Status |
| |
| +----------------------------------------------------------------+ |
| | SpecificContent: Dictionary<string, object> | |
| | - Input data; max 256,000 characters / 512,000 bytes | |
| +----------------------------------------------------------------+ |
| | Output: Dictionary<string, object> | |
| | - Results set by Set Transaction Status | |
| +----------------------------------------------------------------+ |
| | Analytics: Dictionary<string, object> | |
| | - Business KPIs and custom metrics for UiPath Insights | |
| +----------------------------------------------------------------+ |
+----------------------------------------------------------------------+
The SpecificContent Dictionary
The SpecificContent property is a Dictionary(Of String, Object) (or Dictionary<string, object> in C#) that encapsulates the input data payload required to execute the transaction.
- Payload Size Constraint: Orchestrator limits the Specific Data of a queue item to 256,000 characters or 512,000 bytes. Anything larger cannot be added and returns a
403 - Payload Too Largeerror. Binary files, high-resolution PDFs, or large base64 strings should never be injected directly intoSpecificContent; instead, store large binaries in UiPath Storage Buckets, network shares, or document repositories, and store only the resulting URI or file path inSpecificContent. - Data Types: While
SpecificContentstores objects, it is serialized over REST API endpoints as JSON. Primitive types (String,Int32,Double,Boolean,DateTime) serialize and deserialize cleanly. Complex custom classes or non-serializable objects should be converted to JSON strings (Newtonsoft.Json.JsonConvert.SerializeObject) before injection. - Retrieval Syntax & Strongly Typed Extraction: In Studio workflows, developers access values using dictionary key lookups. Because values are stored as
Object, explicit casting or type conversion is required:
' Visual Basic .NET Syntax
Dim strAccountID As String = in_TransactionItem.SpecificContent("AccountID").ToString
Dim decAmount As Decimal = Convert.ToDecimal(in_TransactionItem.SpecificContent("InvoiceAmount"))
Dim dtDueDate As DateTime = DateTime.Parse(in_TransactionItem.SpecificContent("DueDate").ToString)
Dim intRetryCount As Integer = in_TransactionItem.RetryNo
// C# Syntax
string accountID = in_TransactionItem.SpecificContent["AccountID"].ToString();
decimal amount = Convert.ToDecimal(in_TransactionItem.SpecificContent["InvoiceAmount"]);
DateTime dueDate = DateTime.Parse(in_TransactionItem.SpecificContent["DueDate"].ToString());
int retryCount = in_TransactionItem.RetryNo;
Caution
Attempting to access a key that does not exist in SpecificContent (e.g., in_TransactionItem.SpecificContent("NonExistentKey")) throws a runtime System.Collections.Generic.KeyNotFoundException. Defensive code should use .ContainsKey("Key") or encapsulate property retrieval within safe helper methods.
The Output Dictionary
The Output property is a Dictionary(Of String, Object) populated when the transaction finishes. When calling the Set Transaction Status activity (for either Successful or Failed status), developers can pass an output dictionary.
- Purpose: Stores computed operational outputs, such as ERP confirmation numbers, generated transaction IDs, authorization codes, or payment clearing timestamps.
- Downstream Integration: Output data can be inspected directly in the Orchestrator UI, retrieved via the Orchestrator REST API (
/odata/QueueItems), or consumed by downstream automation processes that ingest completed queue items. - Schema Option: A queue can have JSON schemas for Specific Data, Output Data, and Analytics Data. Items whose data does not match the schema fail with a Business Exception. The schemas must not contain arrays.
The Analytics Dictionary
The Analytics property is a specialized collection passed to Set Transaction Status designed specifically for operational metrics and business telemetry.
- Insights Integration: Data injected into the
Analyticsdictionary is ingested by UiPath Insights and analytical dashboards, enabling business leaders to track domain-specific KPIs—such as total dollar amounts processed, manual labor hours saved, loan approval risk ratings, or vendor spend categories—without polluting the technical processing logs.
The Reference Property
In addition to the dictionaries, each queue item features a dedicated Reference property (string up to 128 characters):
- Searchability: The Reference field is indexed in the Orchestrator database, enabling administrators to search, filter, and audit transactions instantly by a recognizable business identifier (e.g.,
INV-2026-9042orSSN-XXX-XX-1234). - Unique Reference Enforcement: When creating a queue in Orchestrator, administrators can select Enforce unique references. Orchestrator then rejects an item whose reference already exists in the queue. Retried and deleted items do not take part in the check, so UiPath advises against deleting the original item of a retry chain. This built-in deduplication is a fail-safe against duplicate payments or redundant order processing.
3. The Complete Queue Item Status Lifecycle
Every queue item progresses through a strict, deterministic finite state lifecycle managed by Orchestrator. Understanding every transition is critical for designing self-healing automations and diagnosing operational bottlenecks.
| Status | Category | Description | Terminal? |
|---|---|---|---|
New | Active | The item has been successfully uploaded to the queue and is awaiting consumption by a robot. | No |
In Progress | Active | A robot has fetched the item via Get Transaction Item or Add Transaction Item. The item is locked to that robot. | No |
Successful | Final | The robot executed all business logic and invoked Set Transaction Status with Status = Successful. | Yes |
Failed | Final | Set Transaction Status reported a Business exception, or an Application exception with no retries remaining. | Yes |
Retried | Historic | An Application exception occurred and the queue's Auto Retry allowed another attempt. A new copy is created in New status while this item becomes Retried. | Yes |
Abandoned | Final | The item remained In Progress for about 24 hours without a status from a robot. | Yes, unless the queue retries abandoned items |
Deleted | Final | Someone deleted the item on the Transactions page. Items can be deleted in any status, and a deleted item can no longer be processed. | Yes |
Queue item status transitions
[New] --Get Transaction Item--> [In Progress]
[In Progress] --Set Transaction Status: Successful--> [Successful]
[In Progress] --Failed, ErrorType Business--> [Failed] (never auto-retried)
[In Progress] --Failed, ErrorType Application, no retries left--> [Failed]
[In Progress] --Failed, ErrorType Application, retries left--> [Retried]
and a new copy is added as [New] with RetryNo + 1
[In Progress] --no status for about 24 hours--> [Abandoned]
(retried automatically only if the Abandoned items option is on)
[Any status] --deleted manually on the Transactions page--> [Deleted]
Deep Dive: Status Transition Rules
New→In Progress:- Occurs when a robot calls
Get Transaction Item(orAdd Transaction Item, which adds an item and starts it at once). Orchestrator records when processing started and which robot took the item.
- Occurs when a robot calls
In Progress→Successful:- Occurs when
Set Transaction Statusis executed withStatus = Successful. Orchestrator records when processing ended and stores anyOutputandAnalyticsdata provided. This is a terminal state; the item can never be re-processed.
- Occurs when
In Progress→Failed(Business Rule Exception):- Occurs when the automation identifies invalid business data (e.g., negative invoice amount, missing required tax code, account closed). In REFramework, this is caught as a
BusinessRuleExceptionand committed withErrorType = Business. - Zero Retries: Orchestrator never retries business exceptions, even if auto-retry is enabled on the queue. Business errors represent logical/data invalidity that will inevitably fail again upon re-execution.
- Occurs when the automation identifies invalid business data (e.g., negative invoice amount, missing required tax code, account closed). In REFramework, this is caught as a
In Progress→Retriedvs.Failed(Application Exception):- Occurs when an unhandled technical error arises (e.g., database timeout, crashed browser, UI selector not found). In REFramework, this is committed with
ErrorType = Application. - Branch A (Auto Retry enabled and retries remain): The current item status transitions to
Retried. Orchestrator immediately clones the transaction item, creating a brand new item with statusNew, incrementing theRetryNocounter by 1. The original item retains its diagnostic logs, error screenshots, and failure details for auditing. - Branch B (Auto Retry disabled or no retries left): If the queue does not have auto-retry enabled, or if the item has already exhausted its configured retry limit, the item transitions permanently to
Failed.
- Occurs when an unhandled technical error arises (e.g., database timeout, crashed browser, UI selector not found). In REFramework, this is committed with
In Progress→Abandoned:- If a robot retrieves an item, transitions it to
In Progress, and subsequently crashes (e.g., machine power outage, operating system kernel panic, runner VM forced reboot, or process terminated forcefully via Windows Task Manager without reaching a Catch/Finally block), the item is left stranded in Orchestrator. - Any item that remains
In Progressfor about 24 hours without a status update is automatically marked asAbandoned. - An
Abandoneditem is retried automatically only if the queue's Auto Retry section has Abandoned items selected; otherwise a reviewer can mark it for retry manually.
- If a robot retrieves an item, transitions it to
- Any status →
Deleted:- Users with the Transactions Delete permission can delete items on the Transactions page, whatever their status. A deleted item can no longer be processed.
- Items that failed or were abandoned can also get a revision status from an assigned reviewer (for example, Verified, after which the item cannot be retried).
4. Queue Security: Modern Folders & Granular Permissions
In modern enterprise UiPath deployments, security, multi-tenancy, and resource isolation are governed through Modern Folders and Role-Based Access Control (RBAC).
Folder Boundaries
Queues are folder-scoped resources. A queue created in Folder_Finance_AP is completely invisible and inaccessible to robots and users operating in Folder_HR_Onboarding.
- Cross-Folder Access: A queue can be linked to other folders so that a dispatcher and performers in different folders use the same queue. Activities can also target a queue in another folder through their Folder Path property, if the robot has permissions there.
Role Permissions: Queues vs. Transactions
UiPath enforces strict separation between permissions governing the Queue entity itself and permissions governing individual Queue Transactions:
| Permission Container | Permission Name | Operational Scope & Capability |
|---|---|---|
| Queues | View | Allows users or robot accounts to discover the queue, read its configuration, schema, SLA targets, and general metadata. |
| Queues | Create | Allows administrators to create new queue containers in the folder. |
| Queues | Edit | Allows modifying queue properties (e.g., changing Max Retries, altering SLA windows, updating JSON validation schemas). |
| Queues | Delete | Allows permanently deleting the queue container and all its associated history. |
| Transactions | View | Allows viewing individual transaction records, inspecting payloads, searching references, and reading error logs. |
| Transactions | Create | Required by Dispatcher robots to add new items via Add Queue Item or Bulk Add Queue Items. |
| Transactions | Edit | Required by Performer robots to call Get Transaction Item (which edits the status to In Progress) and Set Transaction Status (which edits the status to Successful or Failed). |
| Transactions | Delete | Allows deleting individual transaction records from the queue. |
Important
The Unattended Performer Minimum Rights Trap:
A common configuration error is setting up an unattended Performer robot with only Queues: View and Transactions: View rights. When this robot runs Get Transaction Item, the activity will fail with an HTTP 403 Forbidden error! To successfully lock an item (In Progress) and finalize its status (Successful/Failed), the robot account must possess Transactions: Edit permissions.
A performer robot loses network connectivity while processing a queue item, and the process is killed before it can set a status. The queue's Auto Retry section has only Failed items selected. What happens to the item?
It immediately returns to New so another robot can process it.
It stays In Progress and becomes Abandoned after about 24 hours; it is not retried automatically because Abandoned items retry is not selected.
It becomes Retried as soon as the robot session disconnects.
It is marked Failed with the reason RobotExecutionTimeout.
An RPA developer is configuring a Dispatcher workflow that ingests invoice data into an Orchestrator Queue. Which statement correctly describes the architectural constraints and access conventions for QueueItem.SpecificContent?
SpecificContent can store binary file blobs up to 10 MB and is queried using XPath expressions.
SpecificContent values are strongly typed at compile time and do not require type casting or ToString conversions.
SpecificContent is a Dictionary(Of String, Object) limited to 256,000 characters, read with key lookups such as in_TransactionItem.SpecificContent("InvoiceNo").ToString.
SpecificContent is read-only in Orchestrator and can only be accessed after the item reaches Successful status.
An unattended robot service account is assigned a custom role in a Modern Folder. During process execution, the robot throws an HTTP 403 Forbidden security exception when attempting to fetch an item using Get Transaction Item and commit its status. Which specific permission was missing from the robot's role?
Transactions: Edit
Queues: Delete
Folders: Edit
Assets: Create
Sections you finish are checked off in the contents.