UiPath Documentation
uipath-cli
latest
false
UiPath CLI user guide

uip solution upload

Syntax and options for `uip solution upload`, which bundles a local solution and sends it to Studio Web for browser-based editing.

uip solution upload uploads a local solution to UiPath Studio Web for browser-based editing. It bundles the solution into an internal .uis archive, sends it to Studio Web, and (on success) prints a URL you can open directly in the designer.

Unlike uip solution pack + uip solution publish, which produce a deployable .zip for Orchestrator, upload targets the interactive Studio Web authoring surface. Use this when you want to continue editing a solution collaboratively in the browser.

If the solution already exists on Studio Web (matched by the SolutionId inside its .uipx), upload overwrites the existing copy; otherwise it is imported as a new solution and the returned ID is written back into the local .uipx so subsequent uploads update in place.

Synopsis

uip solution upload <solutionPath> [--force] [--no-snapshot] [--login-validity <minutes>]
uip solution upload <solutionPath> [--force] [--no-snapshot] [--login-validity <minutes>]

The command honours the global options and returns the standard exit codes.

Arguments

  • <solutionPath> (required) — One of:
    • A solution directory containing a .uipx manifest (most common).
    • A .uipx file (the command resolves the directory containing it).
    • A .uis file (a pre-bundled solution archive; uploaded as-is for backward compatibility).

Options

  • --force — Skip the existence check and overwrite the Studio Web solution named by the bundled SolutionId directly. Not normally needed — an upload overwrites an existing cloud solution on its own. Fails if that solution does not exist. No effect when no SolutionId is bundled (a .uis archive without one): the upload imports as new.
  • --no-snapshot — Do not record a restorable pre-overwrite version of the cloud solution before replacing its contents. Changes made in Studio Web since the last upload are lost; local files are unaffected. No effect when the upload imports a new solution.
  • --login-validity <minutes> — Minimum minutes before token expiration to trigger a refresh. Defaults to 10.

Examples

Minimal

uip solution upload ./my-solution
uip solution upload ./my-solution

Upload a specific .uipx

uip solution upload ./workspace/my-solution/my-solution.uipx
uip solution upload ./workspace/my-solution/my-solution.uipx

Overwrite without a restorable snapshot

uip solution upload ./my-solution --no-snapshot
uip solution upload ./my-solution --no-snapshot

Scripting — open the returned designer URL

URL=$(uip solution upload ./my-solution --output-filter "Data.DesignerUrl" --output plain)
open "$URL"   # macOS
URL=$(uip solution upload ./my-solution --output-filter "Data.DesignerUrl" --output plain)
open "$URL"   # macOS

Data shape (--output json)

Studio Web has no solution with the bundled SolutionId, so it's imported as new and the local .uipx is updated with the assigned id:

{
  "Code": "SolutionUpload",
  "Data": {
    "Status": "Uploaded successfully",
    "Action": "Imported",
    "SolutionId": "a1b2c3d4-0000-0000-0000-000000000001",
    "DesignerUrl": "https://cloud.uipath.com/myorg/mytenant/studio_/designer/p1?solutionId=a1b2c3d4-0000-0000-0000-000000000001",
    "LocalSolutionIdUpdated": {
      "Path": "/workspace/my-solution/my-solution.uipx",
      "From": "00000000-0000-0000-0000-0000000000ff",
      "To": "a1b2c3d4-0000-0000-0000-000000000001"
    },
    "Response": { }
  }
}
{
  "Code": "SolutionUpload",
  "Data": {
    "Status": "Uploaded successfully",
    "Action": "Imported",
    "SolutionId": "a1b2c3d4-0000-0000-0000-000000000001",
    "DesignerUrl": "https://cloud.uipath.com/myorg/mytenant/studio_/designer/p1?solutionId=a1b2c3d4-0000-0000-0000-000000000001",
    "LocalSolutionIdUpdated": {
      "Path": "/workspace/my-solution/my-solution.uipx",
      "From": "00000000-0000-0000-0000-0000000000ff",
      "To": "a1b2c3d4-0000-0000-0000-000000000001"
    },
    "Response": { }
  }
}

The solution already exists on Studio Web, so it's overwritten in place, with the replaced contents recorded first as a restorable version:

{
  "Code": "SolutionUpload",
  "Data": {
    "Status": "Uploaded successfully",
    "Action": "Overwritten",
    "SolutionId": "a1b2c3d4-0000-0000-0000-000000000001",
    "DesignerUrl": "https://cloud.uipath.com/myorg/mytenant/studio_/designer/p1?solutionId=a1b2c3d4-0000-0000-0000-000000000001",
    "SnapshotCreated": true,
    "Response": { }
  }
}
{
  "Code": "SolutionUpload",
  "Data": {
    "Status": "Uploaded successfully",
    "Action": "Overwritten",
    "SolutionId": "a1b2c3d4-0000-0000-0000-000000000001",
    "DesignerUrl": "https://cloud.uipath.com/myorg/mytenant/studio_/designer/p1?solutionId=a1b2c3d4-0000-0000-0000-000000000001",
    "SnapshotCreated": true,
    "Response": { }
  }
}
  • Action"Imported" on a first upload, "Overwritten" when a solution with that SolutionId already existed on Studio Web.
  • SolutionId — the identity Studio Web assigned (on first upload) or matched (on overwrite). Also written back into the local .uipx so the next upload updates the same solution.
  • DesignerUrl — ready-to-open URL for the first project in the solution, pre-scoped to the solution. null/absent when Studio Web does not return a project ID.
  • LocalSolutionIdUpdated — present only when a fresh SolutionId was written back into the local .uipx (Path, From, To). Absent when overwriting in place, or when the upload source had no prior id to rewrite.
  • SnapshotCreated — present and true only on an overwrite that recorded a restorable pre-overwrite version (i.e. not passed --no-snapshot). Absent on a fresh import, since there's nothing to snapshot.
  • Response — raw Studio Web response payload. Useful for debugging; not part of a stable contract.

Side effects

  • Bindings sync. Before uploading, upload re-scans each project's bindings_v2.json and reconciles the solution's resource declarations, equivalent to running uip solution resources refresh.
  • Connection overwrites. After upload, any connection overwrites detected in the solution's resources/solution_folder/connection/ directory are patched onto Studio Web against the authenticated user's Personal Workspace folder. Failures here are logged as warnings and do not fail the command.
  • SolutionId write-back. On a fresh upload, the returned solution ID replaces (or populates) the SolutionId field in the local .uipx.

See also

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated