- Overview
- Get started
- Concepts
- Using UiPath CLI
- How-to guides
- CI/CD recipes
- Command reference
- Overview
- Exit codes
- Global options
- uip codedagent
- uip docsai
- add-test-data-entity
- add-test-data-queue
- add-test-data-variation
- analyze
- build
- create-project
- diff
- find-activities
- get-analyzer-rules
- get-default-activity-xaml
- get-errors
- get-manual-test-cases
- get-manual-test-steps
- get-versions
- get-workflow-example
- indicate-application
- indicate-element
- inspect-package
- install-data-fabric-entities
- install-or-update-packages
- list-data-fabric-entities
- list-workflow-examples
- pack
- restore
- run-file
- search-templates
- start-studio
- stop-execution
- uia
- uip traces
- Migration
- Reference & support
UiPath CLI user guide
uip solution deploy takes a published solution package (see uip solution publish) and installs it into Orchestrator: creates a folder, provisions resources (queues, assets, processes, buckets, connections), and activates the deployment.
This page covers every subcommand under deploy, plus the top-level uip solution delete which manages Studio Web solutions (not deployments).
| Subcommand | Purpose |
|---|---|
run | Deploy a published package to Orchestrator. |
status | Check the status of a pipeline deployment. |
list | List existing deployments. |
activate | Activate a deployment that was installed without auto-activation. |
uninstall | Remove a deployment and its provisioned resources. |
config get | Fetch the default deployment configuration for a package. |
config set | Set a resource property in a deploy config file. |
config link | Link a solution resource to an existing Orchestrator resource. |
config unlink | Remove a resource link from a deploy config file. |
Also documented on this page:
uip solution delete— a top-level verb that deletes a solution from Studio Web by ID. It is not a deploy subcommand; it is documented alongside these commands for grouping reasons.
Every subcommand is authenticated. Run uip login first, or pass --tenant to target a specific tenant.
Typical workflow
deploy config get → deploy config set / link → deploy run → deploy status
│
├─→ deploy activate (if not auto-activated)
└─→ deploy uninstall (tear down)
deploy config get → deploy config set / link → deploy run → deploy status
│
├─→ deploy activate (if not auto-activated)
└─→ deploy uninstall (tear down)
uip solution deploy run
Deploy a published solution package to Orchestrator. Creates a new folder (under --folder-path or --folder-key), provisions every resource described in the package (or in --config-file), and polls until the deployment reaches a terminal state.
Synopsis
uip solution deploy run \
--name <deployment-name> \
--package-name <name> \
--package-version <version> \
--folder-name <name> \
[--folder-path <path> | --folder-key <guid>] \
[--config-file <path>] \
[--tenant <tenant-name>] \
[--timeout <seconds>] \
[--poll-interval <ms>] \
[--login-validity <minutes>]
uip solution deploy run \
--name <deployment-name> \
--package-name <name> \
--package-version <version> \
--folder-name <name> \
[--folder-path <path> | --folder-key <guid>] \
[--config-file <path>] \
[--tenant <tenant-name>] \
[--timeout <seconds>] \
[--poll-interval <ms>] \
[--login-validity <minutes>]
Options
-n, --name <deployment-name>(required) — Name for the deployment. Used bydeploy status,activate, anduninstallto identify this install.--package-name <name>(required) — Solution package name. Usepackages listto find available names.--package-version <version>(required) — Solution package version. Usepackages listto find available versions.--folder-name <name>(required) — Name of the new Orchestrator folder created for this deployment (under--folder-path).--folder-path <path>— Parent folder path (for exampleShared). The deployment folder is created beneath it.--folder-key <key>— Parent folder key (GUID). Alternative to--folder-path.--config-file <path>— JSON configuration file. Generate it withdeploy config get, edit withconfig set/config link, then pass it here.-t, --tenant <tenant-name>— Tenant to deploy into.--timeout <seconds>— Deployment polling timeout. Defaults to360.--poll-interval <ms>— Milliseconds between status polls. Defaults to5000.--login-validity <minutes>— Minimum minutes before token expiration to trigger a refresh. Defaults to10.
Examples
Common
uip solution deploy run \
--name my-deployment \
--package-name my-package \
--package-version 1.0.0 \
--folder-name MySolution \
--folder-path "Shared"
uip solution deploy run \
--name my-deployment \
--package-name my-package \
--package-version 1.0.0 \
--folder-name MySolution \
--folder-path "Shared"
With a customized configuration
uip solution deploy config get my-package -d ./deploy-config.json
uip solution deploy config set ./deploy-config.json MyQueue maxNumberOfRetries 5
uip solution deploy run \
--name my-deployment \
--package-name my-package \
--package-version 1.0.0 \
--folder-name MySolution \
--folder-path "Shared" \
--config-file ./deploy-config.json
uip solution deploy config get my-package -d ./deploy-config.json
uip solution deploy config set ./deploy-config.json MyQueue maxNumberOfRetries 5
uip solution deploy run \
--name my-deployment \
--package-name my-package \
--package-version 1.0.0 \
--folder-name MySolution \
--folder-path "Shared" \
--config-file ./deploy-config.json
Scripting — capture the deployment ID for follow-up calls
PIPELINE_ID=$(uip solution deploy run \
--name my-deployment \
--package-name my-package --package-version 1.0.0 \
--folder-name MySolution --folder-path "Shared" \
--output-filter "Data.PipelineDeploymentId" --output plain)
uip solution deploy status "$PIPELINE_ID"
PIPELINE_ID=$(uip solution deploy run \
--name my-deployment \
--package-name my-package --package-version 1.0.0 \
--folder-name MySolution --folder-path "Shared" \
--output-filter "Data.PipelineDeploymentId" --output plain)
uip solution deploy status "$PIPELINE_ID"
Data shape (--output json)
{
"Code": "SolutionDeployRun",
"Data": {
"Status": "DeploymentSucceeded",
"DeploymentKey": "a1b2c3d4-0000-0000-0000-000000000001",
"PipelineDeploymentId": "b2c3d4e5-0000-0000-0000-000000000001",
"InstanceId": "c3d4e5f6-0000-0000-0000-000000000001",
"FolderName": "MySolution",
"FolderPath": "Shared/MySolution"
}
}
{
"Code": "SolutionDeployRun",
"Data": {
"Status": "DeploymentSucceeded",
"DeploymentKey": "a1b2c3d4-0000-0000-0000-000000000001",
"PipelineDeploymentId": "b2c3d4e5-0000-0000-0000-000000000001",
"InstanceId": "c3d4e5f6-0000-0000-0000-000000000001",
"FolderName": "MySolution",
"FolderPath": "Shared/MySolution"
}
}
Terminal deployment statuses: DeploymentSucceeded, DeploymentFailed, ValidationFailed, ConflictFixingError, DeploymentScheduleError. Non-success terminal states exit with 1 and aggregate the validation / conflict / schedule / workflow errors into the Instructions field.
Timeout behaviour
If the deployment does not reach a terminal state before --timeout elapses, the command exits non-zero with a pointer to deploy status <pipeline-deployment-id> so you can continue monitoring.
uip solution deploy status
Check the current status of a pipeline deployment. Returns the deployment state and, if available, the name/package/version of the deployment and a concatenated error summary.
Arguments
<pipeline-deployment-id>(required) — ThePipelineDeploymentIdreturned bydeploy run.
Options
-t, --tenant <tenant-name>— Tenant to query.--login-validity <minutes>— Defaults to10.
Example
uip solution deploy status b2c3d4e5-0000-0000-0000-000000000001
uip solution deploy status b2c3d4e5-0000-0000-0000-000000000001
Data shape (--output json)
{
"Code": "SolutionDeployStatus",
"Data": {
"PipelineDeploymentId": "b2c3d4e5-0000-0000-0000-000000000001",
"Status": "DeploymentSucceeded",
"DeploymentKey": "a1b2c3d4-0000-0000-0000-000000000001",
"ConfigurationKey": "...",
"InstanceId": "c3d4e5f6-0000-0000-0000-000000000001",
"DeploymentResult": {
"Name": "my-deployment",
"PackageName": "my-package",
"PackageVersion": "1.0.0",
"Status": "Successful",
"StartDate": "2026-04-15T10:30:00Z",
"EndDate": "2026-04-15T10:31:12Z",
"Errors": null
}
}
}
{
"Code": "SolutionDeployStatus",
"Data": {
"PipelineDeploymentId": "b2c3d4e5-0000-0000-0000-000000000001",
"Status": "DeploymentSucceeded",
"DeploymentKey": "a1b2c3d4-0000-0000-0000-000000000001",
"ConfigurationKey": "...",
"InstanceId": "c3d4e5f6-0000-0000-0000-000000000001",
"DeploymentResult": {
"Name": "my-deployment",
"PackageName": "my-package",
"PackageVersion": "1.0.0",
"Status": "Successful",
"StartDate": "2026-04-15T10:30:00Z",
"EndDate": "2026-04-15T10:31:12Z",
"Errors": null
}
}
}
uip solution deploy list
List solution deployments. Shows deployment name, status, package version, and folder path.
Options
-t, --tenant <tenant-name>— Tenant to query.--folder-path <path>— Filter by parent folder path. Filtering is applied after fetching; increase--takeif results look incomplete when using this filter.--folder-key <key>— Filter by parent folder key (GUID). Alternative to--folder-path.--take <number>— Max deployments to fetch. Defaults to10.--order-by <column>— Column to order by. Defaults tostartTime.--order-direction <direction>—AscendingorDescending. Defaults toDescending.--login-validity <minutes>— Defaults to10.
Example
uip solution deploy list --take 20 --folder-path "Shared/Production"
uip solution deploy list --take 20 --folder-path "Shared/Production"
Data shape (--output json)
{
"Code": "SolutionDeployList",
"Data": [
{
"Key": "a1b2c3d4-0000-0000-0000-000000000001",
"InstallDeploymentKey": "…",
"Name": "my-deployment",
"PackageName": "my-package",
"PackageVersion": "1.0.0",
"OperationStatus": "Successful",
"ActivationStatus": "Activated",
"FolderPath": "Shared/Production",
"FolderKey": "…",
"CreatedAt": "2026-04-15T10:30:00Z"
}
]
}
{
"Code": "SolutionDeployList",
"Data": [
{
"Key": "a1b2c3d4-0000-0000-0000-000000000001",
"InstallDeploymentKey": "…",
"Name": "my-deployment",
"PackageName": "my-package",
"PackageVersion": "1.0.0",
"OperationStatus": "Successful",
"ActivationStatus": "Activated",
"FolderPath": "Shared/Production",
"FolderKey": "…",
"CreatedAt": "2026-04-15T10:30:00Z"
}
]
}
uip solution deploy activate
Activate a deployment that was installed without auto-activation. Activation provisions all solution components. activate first prints the pre-activate steps reported by Orchestrator (to stderr, via --log-level info), then calls activate and polls until a terminal state (SuccessfulActivate or FailedActivate).
Arguments
<deployment-name>(required) — Name of the deployment to activate. Usedeploy listto find deployment names.
Options
-t, --tenant <tenant-name>— Tenant to target.--timeout <seconds>— Activation polling timeout. Defaults to360.--poll-interval <ms>— Milliseconds between status polls. Defaults to5000.--login-validity <minutes>— Defaults to10.
Example
uip solution deploy activate my-deployment
uip solution deploy activate my-deployment
Data shape (--output json)
{
"Code": "SolutionDeployActivate",
"Data": {
"Status": "SuccessfulActivate",
"DeploymentName": "my-deployment",
"InstanceId": "b2c3d4e5-0000-0000-0000-000000000001"
}
}
{
"Code": "SolutionDeployActivate",
"Data": {
"Status": "SuccessfulActivate",
"DeploymentName": "my-deployment",
"InstanceId": "b2c3d4e5-0000-0000-0000-000000000001"
}
}
If Orchestrator reports no instanceId (nothing to poll), Status is Activation completed (no instance to poll) and the command returns successfully.
uip solution deploy uninstall
Uninstall a deployed solution. Removes all provisioned resources and the solution folder.
Arguments
<deployment-name>(required) — Name of the deployment to uninstall.
Options
-t, --tenant <tenant-name>— Tenant to target.--timeout <seconds>— Uninstall polling timeout. Defaults to360.--poll-interval <ms>— Milliseconds between status polls. Defaults to5000.--login-validity <minutes>— Defaults to10.
Example
uip solution deploy uninstall my-deployment
uip solution deploy uninstall my-deployment
Data shape (--output json)
{
"Code": "SolutionDeployUninstall",
"Data": {
"Status": "SuccessfulUninstall",
"DeploymentName": "my-deployment",
"InstanceId": "b2c3d4e5-0000-0000-0000-000000000001"
}
}
{
"Code": "SolutionDeployUninstall",
"Data": {
"Status": "SuccessfulUninstall",
"DeploymentName": "my-deployment",
"InstanceId": "b2c3d4e5-0000-0000-0000-000000000001"
}
}
Two short-circuit responses are possible:
Uninstall completed immediately— when Orchestrator reportscomplete: trueon the first call; no polling happens.Uninstall scheduled— when Orchestrator schedules the work without returning an instance ID; the data includes theScheduledfield from the API.
uip solution deploy config get
Fetch the default deployment configuration for a published solution package. The config lists every resource the solution will create (queues, assets, processes, buckets, connections, ...) with their default settings. Save it to a file (-d), customize with config set / config link, then pass it to deploy run --config-file.
Arguments
<package-name>(required) — Solution package name. Usepackages list.
Options
--package-version <version>— Package version. Latest is used if omitted.-d, --destination <path>— Write the configuration to this file instead of stdout.-t, --tenant <tenant-name>— Tenant to query.--login-validity <minutes>— Defaults to10.
Example
uip solution deploy config get my-package --package-version 1.0.0 -d ./deploy-config.json
uip solution deploy config get my-package --package-version 1.0.0 -d ./deploy-config.json
Data shape (--output json)
When -d is provided:
{
"Code": "SolutionDeployConfig",
"Data": {
"Status": "Configuration written",
"OutputPath": "/workspace/deploy-config.json",
"PackageName": "my-package"
}
}
{
"Code": "SolutionDeployConfig",
"Data": {
"Status": "Configuration written",
"OutputPath": "/workspace/deploy-config.json",
"PackageName": "my-package"
}
}
When -d is omitted, the configuration is embedded in the response:
{
"Code": "SolutionDeployConfig",
"Data": {
"PackageName": "my-package",
"Configuration": { "resources": [ ... ] }
}
}
{
"Code": "SolutionDeployConfig",
"Data": {
"PackageName": "my-package",
"Configuration": { "resources": [ ... ] }
}
}
uip solution deploy config set
Edit a resource property in a deploy config file. The file stays local until you pass it to deploy run --config-file.
Arguments
<file>(required) — Path to the deploy config JSON file (produced byconfig get).<args...>(required) — Depends on--all:- Without
--all:<resource> <property> <value>— e.g.MyQueue maxNumberOfRetries 5. - With
--all:<property> <value>— applies to every resource in the file. Only valid for the top-levelconflictFixingActionproperty.
- Without
Options
--all— Apply the property to all resources in the file. Only permitted withconflictFixingAction(e.g.UseExisting).
Examples
Change retries on a single queue
uip solution deploy config set ./deploy-config.json MyQueue maxNumberOfRetries 5
uip solution deploy config set ./deploy-config.json MyQueue maxNumberOfRetries 5
Set a conflict-fixing policy on every resource
uip solution deploy config set ./deploy-config.json --all conflictFixingAction UseExisting
uip solution deploy config set ./deploy-config.json --all conflictFixingAction UseExisting
Data shape (--output json)
Single-resource update:
{
"Code": "DeployConfigSet",
"Data": {
"Resource": "MyQueue",
"Property": "maxNumberOfRetries",
"OldValue": 1,
"NewValue": 5
}
}
{
"Code": "DeployConfigSet",
"Data": {
"Resource": "MyQueue",
"Property": "maxNumberOfRetries",
"OldValue": 1,
"NewValue": 5
}
}
Bulk update (--all):
{
"Code": "DeployConfigSet",
"Data": {
"Resource": "all",
"Property": "conflictFixingAction",
"NewValue": "UseExisting",
"ResourceCount": 12
}
}
{
"Code": "DeployConfigSet",
"Data": {
"Resource": "all",
"Property": "conflictFixingAction",
"NewValue": "UseExisting",
"ResourceCount": 12
}
}
uip solution deploy config link
Link a solution resource to an existing Orchestrator resource, so the deployment reuses it instead of creating a new one. Changes are local — apply them by passing the file to deploy run --config-file.
Arguments
<file>(required) — Path to the deploy config JSON file.<resource>(required) — Resource name orresourceKeyfrom the config file.
Options
-n, --name <name>(required) — Name of the existing Orchestrator resource to link to.--folder-path <path>— Orchestrator folder path where the existing resource lives.
Example
uip solution deploy config link ./deploy-config.json MyQueue \
--name ProductionQueue \
--folder-path "Shared/Production"
uip solution deploy config link ./deploy-config.json MyQueue \
--name ProductionQueue \
--folder-path "Shared/Production"
Data shape (--output json)
{
"Code": "DeployConfigLink",
"Data": {
"Resource": "MyQueue",
"LinkedTo": {
"name": "ProductionQueue",
"folderPath": "Shared/Production"
}
}
}
{
"Code": "DeployConfigLink",
"Data": {
"Resource": "MyQueue",
"LinkedTo": {
"name": "ProductionQueue",
"folderPath": "Shared/Production"
}
}
}
uip solution deploy config unlink
Remove a link previously set with config link. On the next deploy run --config-file, the resource will be created fresh instead of reused.
Arguments
<file>(required) — Path to the deploy config JSON file.<resource>(required) — Resource name orresourceKeyto unlink.
Example
uip solution deploy config unlink ./deploy-config.json MyQueue
uip solution deploy config unlink ./deploy-config.json MyQueue
Data shape (--output json)
{
"Code": "DeployConfigUnlink",
"Data": {
"Resource": "MyQueue",
"UnlinkedFrom": "ProductionQueue"
}
}
{
"Code": "DeployConfigUnlink",
"Data": {
"Resource": "MyQueue",
"UnlinkedFrom": "ProductionQueue"
}
}
Failure modes
- Resource not currently linked. The command refuses the unlink and points to
config link.
uip solution delete
uip solution delete is a top-level verb (not a deploy subcommand) that deletes a solution from Studio Web by its solution ID. The ID is emitted by uip solution upload and by flow debug in their output.
This does not uninstall a deployed solution from Orchestrator — use deploy uninstall for that.
Synopsis
uip solution delete <solution-id>
uip solution delete <solution-id>
Arguments
<solution-id>(required) — The Studio Web solution ID (UUID).
Example
uip solution delete a1b2c3d4-0000-0000-0000-000000000001
uip solution delete a1b2c3d4-0000-0000-0000-000000000001
Data shape (--output json)
{
"Code": "SolutionDelete",
"Data": {
"SolutionId": "a1b2c3d4-0000-0000-0000-000000000001"
}
}
{
"Code": "SolutionDelete",
"Data": {
"SolutionId": "a1b2c3d4-0000-0000-0000-000000000001"
}
}
Related commands
uip solution publish— required step beforedeploy run.uip solution packages list— discover package names and versions.uip resource— inspect or create the Orchestrator resources thatdeploy config linkreferences.
See also
- Your first pipeline — pack → publish → deploy run walkthrough.
- Authentication and Configuration — session setup and per-tenant defaults.
uip solutionoverview.
- Typical workflow
- uip solution deploy run
- Synopsis
- Options
- Examples
- Data shape (--output json)
- Timeout behaviour
- uip solution deploy status
- Arguments
- Options
- Example
- Data shape (--output json)
- uip solution deploy list
- Options
- Example
- Data shape (--output json)
- uip solution deploy activate
- Arguments
- Options
- Example
- Data shape (--output json)
- uip solution deploy uninstall
- Arguments
- Options
- Example
- Data shape (--output json)
- uip solution deploy config get
- Arguments
- Options
- Example
- Data shape (--output json)
- uip solution deploy config set
- Arguments
- Options
- Examples
- Data shape (--output json)
- uip solution deploy config link
- Arguments
- Options
- Example
- Data shape (--output json)
- uip solution deploy config unlink
- Arguments
- Example
- Data shape (--output json)
- Failure modes
- uip solution delete
- Synopsis
- Arguments
- Example
- Data shape (--output json)
- Related commands
- See also