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