@uipath/skills 1.197.0 → 1.197.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/uipath-ixp/SKILL.md +2 -2
- package/skills/uipath-ixp/references/label-documents-guide.md +1 -1
- package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +1 -1
- package/skills/uipath-maestro-flow/references/shared/file-format.md +1 -1
- package/skills/uipath-platform/SKILL.md +10 -1
- package/skills/uipath-review/SKILL.md +21 -10
- package/skills/uipath-review/references/api-workflows/api-workflow-review-checklist.md +72 -0
- package/skills/uipath-review/references/bpmn/bpmn-review-checklist.md +92 -0
- package/skills/uipath-review/references/coded-apps/coded-app-review-checklist.md +16 -15
- package/skills/uipath-review/references/flows/flow-common-issues.md +1 -25
- package/skills/uipath-review/references/flows/flow-review-checklist.md +12 -67
- package/skills/uipath-review/references/rpa/long-running-workflow-issues.md +2 -2
- package/skills/uipath-review/references/rpa/modern-studio-issues.md +2 -2
- package/skills/uipath-review/references/rpa/rpa-common-issues.md +15 -59
- package/skills/uipath-review/references/rpa/rpa-review-checklist.md +17 -16
- package/skills/uipath-review/references/solution-review-guide.md +1 -1
- package/skills/uipath-rpa/SKILL.md +7 -8
- package/skills/uipath-rpa/references/cli-reference.md +7 -6
- package/skills/uipath-rpa/references/debugging.md +117 -56
- package/skills/uipath-rpa/references/environment-setup.md +2 -2
- package/skills/uipath-rpa/references/ui-automation-guide.md +12 -2
- package/skills/uipath-rpa/references/uia-prerequisites.md +7 -7
- package/skills/uipath-rpa/references/validation-guide.md +9 -12
- package/skills/uipath-solution/references/scenarios/manual-edits.md +2 -2
- package/skills/uipath-troubleshoot/SKILL.md +68 -137
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-action-failed-after-find.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-cell-targeting-failures.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-element-not-found.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-get-text-empty-or-wrong-result.md +2 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-invalid-descriptor.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scroll-search-failures.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-silent-failures-and-false-results.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/delete-range-failures.md +2 -1
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/investigation_guide.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/connection-and-auth-failures.md +3 -1
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/investigation_guide.md +1 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/authentication-token-invalid.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/email-trigger-connection-event-failure.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/application-not-found.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/click-coordinate-off-screen.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/selector-failure-healing-disabled.md +3 -3
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/selector-failure-healing-fix.md +3 -3
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/investigation_guide.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-silent-no-substitution.md +2 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/overview.md +26 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/app-request-trigger-connection-lost.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/handle-app-request-null-reference.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/playbooks/initialize-hub-connection-aggregate-failure.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/workflowevents-activities/summary.md +9 -0
- package/skills/uipath-troubleshoot/references/escalation.md +98 -0
- package/skills/uipath-troubleshoot/references/investigation_guide.md +41 -1
- package/skills/uipath-troubleshoot/references/knowledge-base-guide.md +22 -24
- package/skills/uipath-troubleshoot/references/presenting.md +143 -0
- package/skills/uipath-troubleshoot/references/products/agents/playbooks/context-grounding-index-not-found.md +2 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/cns-error-codes-reference.md +91 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/dap-error-codes-reference.md +109 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/overview.md +9 -3
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/activity-configuration-corrupt.md +52 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-invalid.md +2 -2
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-not-resolved.md +47 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-general-exception.md +2 -2
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connection-not-authenticated.md +46 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connection-not-found.md +53 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-connector-unavailable.md +48 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-dependency-unavailable.md +59 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-events-callback-failed.md +55 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-operation-conflict.md +41 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-permission-denied.md +54 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-solutions-install-failed.md +66 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/cs-trigger-operation-failed.md +48 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/http-client-exception.md +44 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/missing-required-input.md +38 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/request-failed.md +49 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/response-mapping-mismatch.md +43 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/token-refresh-failed.md +42 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/trigger-execution-failed.md +47 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +43 -0
- package/skills/uipath-troubleshoot/references/products/maestro/investigation_guide.md +4 -4
- package/skills/uipath-troubleshoot/references/products/maestro/playbooks/personal-automation-quota.md +1 -1
- package/skills/uipath-troubleshoot/references/products/orchestrator/investigation_guide.md +13 -27
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-pending-stale-dispatch.md +2 -2
- package/skills/uipath-troubleshoot/references/runtime-exceptions/playbooks/argument-null-exception.md +1 -1
- package/skills/uipath-troubleshoot/references/summary.md +33 -12
- package/skills/uipath-troubleshoot/references/templates/playbook-template.md +1 -1
- package/version-manifest.json +1 -1
- package/skills/uipath-troubleshoot/agents/depth-verifier.md +0 -164
- package/skills/uipath-troubleshoot/agents/hypothesis-generator.md +0 -42
- package/skills/uipath-troubleshoot/agents/hypothesis-tester.md +0 -103
- package/skills/uipath-troubleshoot/agents/presenter.md +0 -160
- package/skills/uipath-troubleshoot/agents/scope-checker.md +0 -42
- package/skills/uipath-troubleshoot/agents/shared.md +0 -97
- package/skills/uipath-troubleshoot/agents/triage.md +0 -148
- package/skills/uipath-troubleshoot/schemas/evidence.schema.md +0 -118
- package/skills/uipath-troubleshoot/schemas/hypotheses.schema.md +0 -71
- package/skills/uipath-troubleshoot/schemas/scope-check.schema.md +0 -27
- package/skills/uipath-troubleshoot/schemas/state.schema.md +0 -145
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: high
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Connection Service — Internal / Dependency Failure (CNS2003, CNS2005, CNS2006, CNS2007, CNS2009, CNS2010, CNS2012, CNS1042, CNS1101)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket: 🛠 B — service-side (not customer-fixable → retry, then escalate).** Every code on this page means Connection Service itself, or a dependency it calls (SQL, Orchestrator, Identity, the message bus, or the connector-provider layer), failed — **not** the customer's connection, credentials, or input. Lead with: "This is a service-side issue inside the platform — retry; if it persists, contact the owner team (Integration Service) with the `traceId`." The only split to make is **B1 vs B2**: `CNS1042`/`CNS1101` are the *third-party provider* failing (B2 — wait/retry), everything else is a *UiPath-internal* dependency (B1 — escalate if sustained). See [cns-error-codes-reference.md](../cns-error-codes-reference.md#fault-ownership).
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
What this looks like:
|
|
12
|
+
- HTTP `5xx` (or `502`/`424` for the provider codes) from a Connection Service API call — creating/listing/pinging connections, managing triggers, or a connector activity resolving its connection at runtime
|
|
13
|
+
- Error body shape: `{ "code": "CNS2007", "message": "Integration Service is currently unavailable. Please try again later.", "traceId": "…" }`
|
|
14
|
+
- In App Insights (owner team): traces matching `Connection Service error reported: [StatusCode: …, ErrorCode: "CNS2xxx", …]`
|
|
15
|
+
|
|
16
|
+
Code → failing dependency:
|
|
17
|
+
|
|
18
|
+
| Code | Name | What failed | HTTP |
|
|
19
|
+
|------|------|-------------|:---:|
|
|
20
|
+
| `CNS2003` | DatabaseConnectionFailed | SQL database open/query (transient by definition) | 500 |
|
|
21
|
+
| `CNS2005` | OrchestratorCallFailed | A Connection Service → **Orchestrator** API call (trigger CRUD, queue-definition / process lookups) returned an error | mirrors Orchestrator's status |
|
|
22
|
+
| `CNS2006` | UnknownInternalError | Catch-all: an unhandled exception reached the global middleware | 500 |
|
|
23
|
+
| `CNS2007` | ServiceUnavailableError | A downstream UiPath dependency answered **503** | 503 |
|
|
24
|
+
| `CNS2009` | TokenRequestFailed | S2S token request to **Identity** failed (`invalid_client` or Identity outage) | mirrors Identity's status |
|
|
25
|
+
| `CNS2010` | RequestTimeout | An outbound HTTP call (Orchestrator / provider layer / Identity) hit the client-side timeout | 500 |
|
|
26
|
+
| `CNS2012` | MessageBusDispatchFailed | Dispatcher could not publish a trigger-fired event to the **message bus** | 503 |
|
|
27
|
+
| `CNS1042` | CeExternalProviderError | The **third-party provider** behind the connector returned a 5xx ("Error from provider: …") | 502 |
|
|
28
|
+
| `CNS1101` | VendorError | Provider-layer vendor error — the third-party service rejected or rate-limited the request (dependency failures surface as 424 FailedDependency; a vendor 429 also lands here) | 424 / 429 |
|
|
29
|
+
| `CNS2001` | CEAccountCreationFailed | Provisioning the connector-platform shadow account for a UiPath identity failed | 503 |
|
|
30
|
+
| `CNS2008` | DeleteCeUserFailed | Deleting the connector-platform user during account/tenant cleanup failed | 503 |
|
|
31
|
+
| `CNS1036` | CEDeleteInstanceFailed | Deleting the connector-platform instance during connection delete failed | mirrors dependency status |
|
|
32
|
+
|
|
33
|
+
What can cause it:
|
|
34
|
+
- Transient dependency blips — SQL failovers, Orchestrator deploys, Identity token-endpoint hiccups, message-bus congestion. Most of these self-heal.
|
|
35
|
+
- A genuine dependency incident (sustained `CNS2005`/`CNS2007` clusters across tenants).
|
|
36
|
+
- For `CNS1042`/`CNS1101` — the third-party service (Salesforce, O365, …) itself is down or erroring; UiPath is only relaying it.
|
|
37
|
+
- `CNS2010` with no other signal usually means one slow dependency call, not an outage.
|
|
38
|
+
|
|
39
|
+
What to look for:
|
|
40
|
+
- **Is it one request or a cluster?** A single occurrence that succeeds on retry is a transient blip. A sustained cluster (same code, many tenants, > ~15 min) is an incident.
|
|
41
|
+
- **The `traceId` from the error body** — it is the correlation key the owner team needs; always capture it.
|
|
42
|
+
- For `CNS1042`: the provider name in the message — check that provider's status page before escalating to UiPath.
|
|
43
|
+
|
|
44
|
+
## Investigation
|
|
45
|
+
|
|
46
|
+
1. **Do NOT chase the connection.** None of these codes indicate a credential, permission, or configuration problem. Re-authenticating the connection, editing it, or recreating it will not help — skip those steps.
|
|
47
|
+
2. **Retry once.** All codes on this page except `CNS1101`-on-4xx are transient-classified (5xx/408/429 and the Db/Identity/MessageBus dependency family are auto-retried by background flows; interactive calls are not). A clean retry closes the case.
|
|
48
|
+
3. **Classify B1 vs B2:**
|
|
49
|
+
- `CNS1042` / `CNS1101` → **B2** — read the provider name from the message and check the third-party service's status/health page. If the provider is degraded, wait it out.
|
|
50
|
+
- Everything else → **B1** — a UiPath-internal dependency. Check the UiPath status page / trust portal for a known incident in the tenant's region.
|
|
51
|
+
4. **Establish blast radius (owner team):** in the Connection Service App Insights for the region, `union traces, exceptions | where customDimensions.ErrorCode == "CNS2xxx" | summarize count() by bin(timestamp, 15m)` — a flat low baseline is normal background noise; a step change marks an incident window. `CNS2005` also carries the Orchestrator status code in the message — 401/403 clusters point at S2S token/permission drift rather than an Orchestrator outage.
|
|
52
|
+
5. **For `CNS2012` specifically** — trigger events are queued and retried by the dispatcher; a brief message-bus blip usually means delayed (not lost) trigger firings. Sustained failures = escalate; the events may be dropped after retry exhaustion.
|
|
53
|
+
|
|
54
|
+
## Resolution
|
|
55
|
+
|
|
56
|
+
- **Transient (single occurrence, retry succeeds):** no action. Note the `traceId` in case it recurs.
|
|
57
|
+
- **`CNS1042` / `CNS1101` with a degraded provider:** wait for the third-party service to recover; nothing to fix on the UiPath side. If the provider is healthy and the code persists, escalate to Integration Service — the connector's provider integration may be broken.
|
|
58
|
+
- **Sustained B1 (any other code):** escalate to the Integration Service owner team with: the CNS code, the `traceId`(s), tenant/org IDs, timestamps, and the affected operation (e.g. "trigger create", "connection ping"). These are platform faults; the customer cannot resolve them from their side.
|
|
59
|
+
- **Never** advise the customer to delete/recreate connections or triggers for these codes — it does not address the dependency fault and can lose configuration.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: medium
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Connection Service — Event Callback Processing Failed (CNS1005, CNS2000, CNS1015–CNS1019, CNS1024, CNS1029, CNS2011)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket: 🛠 B1 — service-side (machine-to-machine path; the customer never makes these calls).** These codes fire while Connection Service processes an **inbound event callback** from the connector platform (the webhook that says "an event happened on the third-party side"). The caller is the platform itself, not a user — so a bad payload, an orphaned instance, or a mismatched connection ID is a platform/data-drift issue. The **customer-visible symptom is a trigger that doesn't fire** (or fires late); triage the customer report via [trigger-not-firing.md](./trigger-not-firing.md) and use this page to interpret what the service-side codes mean.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
What this looks like (owner-team view — App Insights traces, not customer errors):
|
|
12
|
+
- `Connection Service error reported: [StatusCode: NotFound, ErrorCode: "CNS1005", ErrorReason: "Connection for element instance [N] was not found"]` — the single **highest-volume** CNS signal in production
|
|
13
|
+
- `CNS2000` — *"Fail to handle notification"* — a 500 catch-all around event handling
|
|
14
|
+
|
|
15
|
+
| Code | Name | Exact meaning | HTTP |
|
|
16
|
+
|------|------|---------------|:---:|
|
|
17
|
+
| `CNS1005` | ConnectionForElementInstanceNotFound | An event arrived for a provider-side element instance that maps to **no connection** — the connection was deleted but the provider-side subscription still delivers events (orphaned instance) | 404 |
|
|
18
|
+
| `CNS2000` | EventsCallbackFailed | Unhandled exception while processing the event callback | 500 |
|
|
19
|
+
| `CNS1015` | EventsCallbackInstanceIdMissing | Callback payload missing the instance ID | 400 |
|
|
20
|
+
| `CNS1016` | EventsCallbackHasMoreThanOneEvent | Callback carried more than one event (unsupported shape) | 400 |
|
|
21
|
+
| `CNS1017` | ObjectTypeMissing | Callback payload missing object name/type | 400 |
|
|
22
|
+
| `CNS1018` | EventsInfoMissing | Callback payload missing the events section | 400 |
|
|
23
|
+
| `CNS1019` | EventTypeMissing | Callback payload missing the event type | 400 |
|
|
24
|
+
| `CNS1024` | EventsCallbackRequestInvalid | Callback body null/unparsable JSON | 400 |
|
|
25
|
+
| `CNS1029` | EventsCallbackInvalidConnectionId | Connection ID in the callback route doesn't match the instance's actual connection | 400 |
|
|
26
|
+
| `CNS2011` | EventTypeUtilFailed | No matching event operation/mode/type registered for the connector event key — event-catalog mapping gap | 400 |
|
|
27
|
+
|
|
28
|
+
Related codes on the *outbound* side of the same pipeline: `CNS1011`/`CNS1012`/`CNS1013` (connection-event create/delete validation — duplicate registration, missing IDs) are low-volume request-validation errors on event-configuration APIs; fix the request. Event *dispatch* to downstream products failing is `CNS2012` — see [cs-dependency-unavailable.md](./cs-dependency-unavailable.md).
|
|
29
|
+
|
|
30
|
+
What can cause it:
|
|
31
|
+
- **`CNS1005` steady-state noise:** connections deleted while the provider-side event subscription lives on for a while — expected background volume, mostly benign; each hit is a dropped event for a connection that no longer exists
|
|
32
|
+
- Malformed or truncated payloads from the connector platform / provider (the `CNS101x` family)
|
|
33
|
+
- Connector catalog/event-registration drift (`CNS2011`, and `CNS2045` — see [cs-connector-unavailable.md](./cs-connector-unavailable.md))
|
|
34
|
+
- Genuine processing bugs or downstream failures inside event handling (`CNS2000`)
|
|
35
|
+
|
|
36
|
+
What to look for:
|
|
37
|
+
- **Volume shape, not single hits.** A flat baseline of `CNS1005` is normal; a step-change spike (or a cluster on one tenant/connector) is an incident or a mass-deletion side effect
|
|
38
|
+
- Whether a specific connector dominates the failures (points at that connector's payload shape or event registration)
|
|
39
|
+
- For a customer-reported missing trigger event: whether their connection was recently deleted/recreated (the old instance still emitting → events land on the orphan, new connection gets nothing until re-subscription)
|
|
40
|
+
|
|
41
|
+
## Investigation
|
|
42
|
+
|
|
43
|
+
1. **Start from the customer symptom** ("trigger didn't fire") with [trigger-not-firing.md](./trigger-not-firing.md) — verify the trigger, connection state, and event subscription first.
|
|
44
|
+
2. **Owner team — locate the callback failures:** in the region's Connection Service App Insights, `union traces, exceptions | where message has "CNS1005" or customDimensions.ErrorCode in ("CNS1005","CNS2000","CNS1029") | summarize count() by tostring(customDimensions.ErrorCode), bin(timestamp, 1h)` and segment by tenant/connector to find clusters.
|
|
45
|
+
3. **`CNS1005` for a specific complaint:** match the element-instance number in the message against the customer's connection history — if the events target a deleted connection's instance, the fix is re-establishing the subscription on the *new* connection (usually recreating the trigger), not chasing the 404s.
|
|
46
|
+
4. **`CNS101x` payload-shape codes:** capture a sample payload (owner team) and identify the sending connector — this is a defect report against the connector/platform event pipeline, not something to work around per-customer.
|
|
47
|
+
5. **`CNS2000`:** read the wrapped inner exception in the trace — it is a catch-all; classify the real cause (DB? downstream? mapping?) and route accordingly.
|
|
48
|
+
|
|
49
|
+
## Resolution
|
|
50
|
+
|
|
51
|
+
- **Customer-facing:** if events stopped after a connection was recreated, recreate/re-save the trigger so the event subscription binds to the new connection instance. Verify a test event flows end-to-end.
|
|
52
|
+
- **`CNS1005` background noise:** no action per-hit. Sustained high volume from one tenant is worth a cleanup (delete stale provider-side subscriptions) — an owner-team/ops action.
|
|
53
|
+
- **Payload-shape and mapping codes (`CNS101x`, `CNS2011`):** escalate to the Integration Service owner team with connector key, sample `traceId`s, and the earliest occurrence — these are connector/platform defects.
|
|
54
|
+
- **`CNS2000` clusters:** treat as a service incident — escalate with the inner-exception signature and time window.
|
|
55
|
+
- **Never** advise customers to retry or re-authenticate for these codes — the failing call is machine-to-machine; nothing on the customer side retries it.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: high
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Connection Service — Conflict / Duplicate (CNS3002, CNS1007, CNS1038)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket: 👤 A for `CNS1038` (pick another name) · 🛠 mixed for `CNS1007` (usually a create race — retry once) · 🔧 ops-tooling for `CNS3002` (an internal migration/backfill is already running — wait or deliberately override; never a customer action).** Everything here is a *state collision*, not a fault: something already exists or is already running.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
What this looks like:
|
|
12
|
+
|
|
13
|
+
| Code | Name | Exact meaning | HTTP | Who acts |
|
|
14
|
+
|------|------|---------------|:---:|---|
|
|
15
|
+
| `CNS3002` | Conflict | A single-flight lock is held: an in-progress **tenant migration**, **Orchestrator-trigger migration** (`migrate-disconnected`), or **personal-workspace backfill** job is already running for the tenant, and a second trigger attempt arrived without the override flag | 409 | Ops / owner team |
|
|
16
|
+
| `CNS1007` | ConnectionKeyOrIndexViolation | Duplicate-key violation inserting a connection — two concurrent creates of the same connection, or a retry racing its original | 400 | Customer (retry) / service if persistent |
|
|
17
|
+
| `CNS1038` | ConnectionNameDuplicated | Rename rejected — *"The name is already in use."* | 400 | Customer |
|
|
18
|
+
|
|
19
|
+
Related 409: `CNS1075` (connector not deployed) also surfaces as 409 but is a connector-deployment fault — see [cs-connector-unavailable.md](./cs-connector-unavailable.md).
|
|
20
|
+
|
|
21
|
+
What can cause it:
|
|
22
|
+
- `CNS3002`: a previous migration/backfill run is still in progress — or crashed while holding its lock (stuck lock). The message names the job type (e.g. an `OrchTrigger` migration record).
|
|
23
|
+
- `CNS1007`: double-submit on connection creation (UI double-click, client retry without idempotency), or parallel automation creating the same connection
|
|
24
|
+
- `CNS1038`: straightforward — the target name exists in scope
|
|
25
|
+
|
|
26
|
+
What to look for:
|
|
27
|
+
- `CNS3002`: **is the named job actually running?** A genuinely running job → wait. No live job but the lock persists → stuck lock from a crashed run.
|
|
28
|
+
- `CNS1007`: whether the connection actually got created despite the error (the race's winner) — often the retry fails but the resource exists
|
|
29
|
+
|
|
30
|
+
## Investigation
|
|
31
|
+
|
|
32
|
+
1. **`CNS3002`:** identify the job family from the message (GWS tenant migration / OrchTrigger migration / PWs backfill). Owner team: check the job's progress records and task-runner logs for a live run. If the last run terminated abnormally and the lock is stale, the trigger API accepts an explicit override flag (`OverrideMigrationInProcess` / `OverrideJobInProcess` / `OverrideBackfillInProcess`) — an **ops decision**: only override when certain no run is in flight, since overriding overwrites the live migration record.
|
|
33
|
+
2. **`CNS1007`:** list connections for the connector/folder — if the intended connection exists, the create actually succeeded on the other racer; use it. If nothing exists and the error repeats on clean single-flight creates, capture the `traceId` and escalate (persistent key collision is a service defect).
|
|
34
|
+
3. **`CNS1038`:** nothing to investigate — enumerate existing names.
|
|
35
|
+
|
|
36
|
+
## Resolution
|
|
37
|
+
|
|
38
|
+
- **`CNS3002` with a live job:** wait for completion; the lock releases itself. Do not spam the trigger endpoint.
|
|
39
|
+
- **`CNS3002` with a stuck lock:** ops re-fires the trigger with the override flag — on the **first** batch/attempt only; never override while a run is legitimately in flight.
|
|
40
|
+
- **`CNS1007`:** retry the create once; if the connection appeared, deduplicate client-side (avoid double-submit). Persistent → escalate with `traceId`.
|
|
41
|
+
- **`CNS1038`:** choose a unique connection name. Name-length/empty variants of the same rename validation surface as `CNS1032`/`CNS1033`.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: high
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Connection Service — Permission / Authorization Denied (CNS1045, CNS1044, CNS1046, CNS1047, CNS1043, CNS3001)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket: 👤 A — customer/admin-resolvable.** The caller reached Connection Service but was rejected by an authorization layer: missing **folder permission** (the big one — `CNS1045`), missing OAuth **scope**, a client ID not allowed on the endpoint, a bad/unsupported token, or an **Automation Ops governance policy** blocking the connector. In every case the fix is an admin action (grant permission/scope, adjust policy) — not a retry and not a service escalation.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
What this looks like:
|
|
12
|
+
- HTTP `403`/`401` (or `400` for the missing-folder-key case) from Connection Service
|
|
13
|
+
- The highest-volume production signature: `CNS1045` — *"The robot does not have the Connections.View permission in the folder where this connection lives. Ask your administrator to grant Connections.View on that folder, or move the connection to a folder where the robot has the required permission."* (sometimes with a `(Folder: <key>)` hint)
|
|
14
|
+
- Debug runs work (user identity has the permission) but deployed/unattended runs fail (robot account doesn't) — the classic signature of a folder-permission gap
|
|
15
|
+
|
|
16
|
+
| Code | Name | Rejecting layer | Exact meaning | HTTP |
|
|
17
|
+
|------|------|-----------------|---------------|:---:|
|
|
18
|
+
| `CNS1045` | InsufficientFolderPermission | Folder authorization | Caller lacks a folder-scoped permission (default named permission: `Connections.View`) on the folder holding the connection/trigger | 403 |
|
|
19
|
+
| `CNS1044` | InsufficientPermissions | Scope authorization | The token lacks a required OAuth scope; also used when a downstream dependency answers 403 | 403 |
|
|
20
|
+
| `CNS1046` | InsufficientClientId | Client authorization | The token's `client_id` is not on the endpoint's allow-list (S2S/internal endpoints) | 401 |
|
|
21
|
+
| `CNS1047` | Unauthorized | Authentication | Token invalid/wrong audience; also *"External application authentication is not supported"* on endpoints that don't accept external-app tokens | 401 |
|
|
22
|
+
| `CNS1043` | MissingFolderKey | Request validation | An S2S caller did not supply the folder key that folder-scoped resolution requires | 400 |
|
|
23
|
+
| `CNS3001` | ForbiddenAccess | Governance | An **Automation Ops policy** blocks the action — e.g. *"The connector was disabled by an Automation Ops policy."* Fires on connection create and re-authenticate when the policy denies the connector | 403 |
|
|
24
|
+
|
|
25
|
+
Related: `CNS1025` — nominally "TriggerRequestInvalid" — is **reused** for *"In S2S context, the folder key is required"* on several connection/trigger endpoints. Treat that message the same as `CNS1043` regardless of the code.
|
|
26
|
+
|
|
27
|
+
What can cause it:
|
|
28
|
+
- Robot account was never granted `Connections.View` (or the folder-specific permission the message names) on the folder the connection lives in
|
|
29
|
+
- The connection was moved to a different folder after the process was deployed
|
|
30
|
+
- API/external-app integration was registered without the Connection Service scopes it calls
|
|
31
|
+
- An Automation Ops governance policy was tightened, disabling a connector tenant-wide or for specific groups
|
|
32
|
+
- Internal S2S callers omitting the folder key header/parameter after an integration change
|
|
33
|
+
|
|
34
|
+
What to look for:
|
|
35
|
+
- **Which permission and which folder** — the `CNS1045` message names the permission and often the folder key; that's the exact grant to make
|
|
36
|
+
- Caller identity: user vs robot account vs external app (the fix target differs)
|
|
37
|
+
- For `CNS3001`: which policy — check Automation Ops policies applied to the tenant/user group for the named connector
|
|
38
|
+
|
|
39
|
+
## Investigation
|
|
40
|
+
|
|
41
|
+
1. **Read the message, not just the code** — `CNS1045` tells you the missing permission and (usually) the folder. That is 90% of the diagnosis.
|
|
42
|
+
2. **Identify the caller identity** the request ran under (robot account for unattended jobs, the user for debug, the app registration for API calls). Verify in Orchestrator → Folders → the named folder → Assigned users/robots whether that identity holds the named permission (e.g. `Connections.View`; Maestro trigger paths may also need `Triggers` permissions).
|
|
43
|
+
3. **Reproduce the split**: if debug works and deployed fails, it is a robot-account grant, full stop.
|
|
44
|
+
4. **`CNS1044`/`CNS1047` on API integrations**: inspect the token (scopes, audience). For external apps, confirm the app registration includes the Integration Service / Connection Service scopes it invokes and that the endpoint supports external-app tokens at all (`CNS1047`'s "not supported" message means it never will — use a different auth model).
|
|
45
|
+
5. **`CNS3001`**: list Automation Ops policies for the tenant; find the connector allow/deny list that covers the affected user/group. The connection UI action that failed (create or re-authenticate) confirms the policy is evaluated on those flows.
|
|
46
|
+
6. **`CNS1043` / folder-key-required `CNS1025`**: only surfaces on S2S/machine callers — a missing folder key in the request. This is an integration bug in the *calling service*, not a permissions grant.
|
|
47
|
+
|
|
48
|
+
## Resolution
|
|
49
|
+
|
|
50
|
+
- **`CNS1045`:** have a folder admin grant the named permission (typically `Connections.View`) to the robot/user on the folder holding the connection — or move the connection to a folder where the runner already has it. Re-run; no re-authentication needed.
|
|
51
|
+
- **`CNS1044`:** add the missing OAuth scope to the app registration / token request. If it wrapped a downstream 403, treat the named dependency's permission model (e.g. Orchestrator role) instead.
|
|
52
|
+
- **`CNS1046`/`CNS1047`:** these are integration-configuration rejections — fix the token audience/client registration; do not retry with the same token. `CNS1046` on UiPath-internal endpoints reaching a customer is unusual — capture the `traceId` and escalate if the caller is a supported public surface.
|
|
53
|
+
- **`CNS3001`:** a governance decision, not an error — the admin either updates the Automation Ops policy to allow the connector or the user stops using the blocked connector. Never escalate to Integration Service to "fix" a policy block.
|
|
54
|
+
- **`CNS1043` / S2S folder key:** fix the calling integration to pass the folder key. If the caller is a UiPath product (not customer code), escalate to that product's team with the `traceId`.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: medium
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Connection Service — Solutions Package Install / Validation Failed (CNS1050, CNS1055–CNS1075 range, shell connections)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket: 👤 A for spec/version/authentication issues (the package author or installer fixes the package or the tenant state) · 🛠 B1 for unexpected-error and stuck-publish codes.** These codes surface when a **Solutions package** that carries connections/connectors is validated or installed into a tenant. Unlike the rest of the CNS family, most of them are **not HTTP errors** — they arrive *embedded* in the validation response (`ValidateResourcesResponse`) or the async install job's status as per-resource `ValidationError` entries, each with its own `ErrorCode` and sometimes `AllowedActions`.
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
What this looks like:
|
|
12
|
+
- Solution install/validate reports per-resource errors; the install job status carries `ValidationError { ErrorCode: "CNS10xx", … }` entries
|
|
13
|
+
- A corrupt package upload fails outright with HTTP 400 `CNS1050`
|
|
14
|
+
|
|
15
|
+
Package/spec validation (fix the package):
|
|
16
|
+
|
|
17
|
+
| Code | Name | Meaning | Action |
|
|
18
|
+
|------|------|---------|--------|
|
|
19
|
+
| `CNS1050` | InvalidSolutionArchive | Package zip is corrupt/unreadable (HTTP 400, not embedded) | Rebuild/re-upload the package. ⚠ `CNS1050` is a **duplicated literal** — it is also `EventModeNotSupported` on the make-connection-call API; disambiguate by operation. |
|
|
20
|
+
| `CNS1059` | ConnectorKeyRequired | Connector/connection resource spec missing `Key` | Fix package spec |
|
|
21
|
+
| `CNS1074` | ConnectorNameRequired | Connector spec missing `Name` | Fix package spec |
|
|
22
|
+
| `CNS1055` | InvalidAuthenticationType | Connection spec has an unrecognized authentication type | Fix package spec |
|
|
23
|
+
| `CNS1058` | ConnectionNameInvalid | Connection spec name invalid | Fix package spec |
|
|
24
|
+
| `CNS1039` | InvalidPollingInterval | Polling interval out of range (also a live-API error) | Fix package spec |
|
|
25
|
+
|
|
26
|
+
Connector version reconciliation (installer chooses):
|
|
27
|
+
|
|
28
|
+
| Code | Name | Meaning | AllowedActions |
|
|
29
|
+
|------|------|---------|----------------|
|
|
30
|
+
| `CNS1064` | ConnectorVersionNotFound | Package links a custom-connector version not present in the tenant | Install the connector first |
|
|
31
|
+
| `CNS1066` | LowerConnectorVersionExists | Tenant has a lower version than the package expects | UseExisting / MergeConfiguration |
|
|
32
|
+
| `CNS1067` | HigherConnectorVersionExists | Tenant has a higher version | UseExisting |
|
|
33
|
+
|
|
34
|
+
Shell connections (authenticate-after-deployment):
|
|
35
|
+
|
|
36
|
+
| Code | Name | Meaning | Action |
|
|
37
|
+
|------|------|---------|--------|
|
|
38
|
+
| `CNS1068` | ShellConnectionRequired | Spec says authenticate-after-deployment but no shell-connection key supplied | Fix package spec |
|
|
39
|
+
| `CNS1069` | ShellConnectionNotFound | Referenced shell connection doesn't exist in the tenant | Create/fix the reference |
|
|
40
|
+
| `CNS1072` | ShellConnectionRequiredAuthentication | Shell connection exists but is unauthenticated | Authenticate it, then install |
|
|
41
|
+
| `CNS1071` | ShellConnectionWarning | Informational: authentication will be required after deployment | None — expected |
|
|
42
|
+
| `CNS1070` | ShellConnectionUnexpectedError | Unexpected failure validating the shell connection | 🛠 escalate |
|
|
43
|
+
|
|
44
|
+
Service-side install failures (escalate if not transient):
|
|
45
|
+
|
|
46
|
+
| Code | Name | Meaning |
|
|
47
|
+
|------|------|---------|
|
|
48
|
+
| `CNS1060` | ConnectorKeyUnexpectedError | Unexpected exception checking connector existence/version (element-service call failure) |
|
|
49
|
+
| `CNS1063` | ConnectorImportError | Unexpected exception importing a custom connector, or its publish job failed |
|
|
50
|
+
| `CNS1065` | ConnectorImportPublishError | Connector publish job stuck in progress past the polling timeout |
|
|
51
|
+
| `CNS1056` | ConnectionCreateError | Unexpected exception creating a connection during install |
|
|
52
|
+
| `CNS1057` | ConnectionUpdateError | Unexpected exception updating a connection during install |
|
|
53
|
+
|
|
54
|
+
## Investigation
|
|
55
|
+
|
|
56
|
+
1. **Read the per-resource `ValidationError` list from the install/validate response** — each entry names the resource, the code, and (for version conflicts) the `AllowedActions`. The code table above routes each one; most installs fail on the *first* category (spec errors) or the *second* (version reconciliation).
|
|
57
|
+
2. **Version conflicts (`CNS1064`/`CNS1066`/`CNS1067`)** are choices, not faults: decide whether the tenant's existing connector version should win (`UseExisting`), merge configuration, or install the packaged version first.
|
|
58
|
+
3. **Shell-connection codes:** verify the referenced connection exists and is authenticated in the target tenant *before* re-running the install. `CNS1071` is a warning — the install proceeded; someone must authenticate after deployment (until then, runtime calls will fail with `CNS1008` — see [cs-connection-not-authenticated.md](./cs-connection-not-authenticated.md)).
|
|
59
|
+
4. **Service-side codes (`CNS1060`/`CNS1063`/`CNS1065`/`CNS1056`/`CNS1057`):** retry the install once (transient dependency blips are common); a repeat with the same code is an Integration Service escalation with the install job ID and `traceId`. `CNS1065` specifically means the connector publish pipeline is slow/stuck — check for a wider publish backlog before blaming the package.
|
|
60
|
+
|
|
61
|
+
## Resolution
|
|
62
|
+
|
|
63
|
+
- **Spec errors:** fix the package definition and rebuild — these never self-resolve.
|
|
64
|
+
- **Version reconciliation:** pick an `AllowedAction` deliberately; document which connector version the solution standardizes on to avoid drift across tenants.
|
|
65
|
+
- **Shell connections:** create/authenticate the referenced connection, re-run install; plan for post-deployment authentication of `CNS1071`-flagged connections as part of the rollout runbook.
|
|
66
|
+
- **Sustained service-side failures:** escalate with install job ID, tenant, package name/version, and `traceId`s.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: high
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Connection Service — Trigger Management Failed (CNS1020, CNS1014, CNS1025, CNS1039, CNS2004)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket: 👤 A for `CNS1020`/`CNS1014`/`CNS1039` and most `CNS1025` (bad ID, blocked delete, bad interval, malformed request) · 🛠 B1 for `CNS2004` (persisted trigger configuration cannot be deserialized — a data/platform defect).** These codes fire on trigger CRUD — create, rename, enable/disable, convert, delete — via the Connection Service API. For a trigger that manages fine but silently doesn't *fire*, use [trigger-not-firing.md](./trigger-not-firing.md) instead; for enable failing because the underlying connection is dead, it's `CNS1061` in [cs-connection-not-authenticated.md](./cs-connection-not-authenticated.md).
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
What this looks like:
|
|
12
|
+
- HTTP `400`/`404` from trigger endpoints, error body `{ "code": "CNS1020", "message": "Trigger [<guid>] is invalid or you do not have access…", "traceId": "…" }`
|
|
13
|
+
|
|
14
|
+
| Code | Name | Exact meaning | HTTP | Bucket |
|
|
15
|
+
|------|------|---------------|:---:|:---:|
|
|
16
|
+
| `CNS1020` | TriggerIdInvalid | Trigger ID doesn't exist / caller has no access — or the trigger isn't of the type the operation requires (e.g. convert/migrate on a non-automation trigger) | 404 | 👤 A |
|
|
17
|
+
| `CNS1014` | DeleteTriggerWithActiveProcessNotAllowed | Delete blocked: the trigger still has active/assigned processes | 400 | 👤 A |
|
|
18
|
+
| `CNS1025` | TriggerRequestInvalid | Malformed trigger request — **heavily overloaded**: missing body fields, *"In S2S context, the folder key is required"* (also thrown by some connection endpoints), and one service-side notification-failure branch | 400 (one 500 branch) | 👤 A (mostly) |
|
|
19
|
+
| `CNS1039` | InvalidPollingInterval | Polling interval outside the allowed min/max range | 400 | 👤 A |
|
|
20
|
+
| `CNS2004` | TriggerConfigDeserializationFailed | The trigger's persisted configuration blob can't be deserialized / has an unknown trigger type — data corruption or version drift | 500 | 🛠 B1 |
|
|
21
|
+
|
|
22
|
+
What can cause it:
|
|
23
|
+
- Automations/scripts referencing trigger IDs that were deleted or belong to another folder/tenant
|
|
24
|
+
- Attempting to delete a trigger still wired to processes (`CNS1014` is a guard, not a fault)
|
|
25
|
+
- S2S/machine callers omitting the folder key after an integration change (`CNS1025`)
|
|
26
|
+
- Setting polling intervals below the tenant minimum (`CNS1039`)
|
|
27
|
+
- `CNS2004`: a trigger created by an older service version whose config schema the current version can't read, or a corrupted row — never customer-caused
|
|
28
|
+
|
|
29
|
+
What to look for:
|
|
30
|
+
- The trigger GUID and which operation failed (create/update/state-change/delete/convert)
|
|
31
|
+
- `CNS1025`: read the message — "folder key is required" vs a field-validation message vs anything else; the code alone does not identify the failure
|
|
32
|
+
- `CNS2004`: which trigger ID — the same trigger will fail deterministically on every read/fire until repaired
|
|
33
|
+
|
|
34
|
+
## Investigation
|
|
35
|
+
|
|
36
|
+
1. **Resolve the trigger** in the tenant (Integration Service → Triggers, or via API list) — confirm existence, folder, and type. `CNS1020` on convert/migrate operations can mean "exists but wrong trigger type", which the message indicates.
|
|
37
|
+
2. **`CNS1014`:** list the processes attached to the trigger; that list is the blocker. This is working-as-designed protection.
|
|
38
|
+
3. **`CNS1025`:** classify by message. Folder-key-required → fix the S2S caller (see [cs-permission-denied.md](./cs-permission-denied.md) for the same pattern under `CNS1043`). Field validation → fix the request payload. Anything mentioning notification/SAP with a 500 → treat as service-side, capture `traceId`, escalate.
|
|
39
|
+
4. **`CNS2004`:** deterministic 500 on a specific trigger = data-level defect. Do not loop retries. Capture the trigger ID and `traceId` and check whether the trigger predates a known migration; the owner team repairs or migrates the config.
|
|
40
|
+
5. If trigger *creation* fails with an Orchestrator-related error rather than these codes, the failing leg is Connection Service → Orchestrator (`CNS2005`) — route to [cs-dependency-unavailable.md](./cs-dependency-unavailable.md).
|
|
41
|
+
|
|
42
|
+
## Resolution
|
|
43
|
+
|
|
44
|
+
- **`CNS1020`:** correct the trigger reference (recreate the trigger or point the caller at the right ID/folder); for type-mismatch variants, run the operation against a trigger of the required type.
|
|
45
|
+
- **`CNS1014`:** unassign/stop the attached processes first, then delete the trigger — or keep the trigger if the processes are still needed.
|
|
46
|
+
- **`CNS1025` (customer variants):** fix the request — supply the folder key on S2S calls, complete required fields.
|
|
47
|
+
- **`CNS1039`:** set the polling interval within the documented range for the tenant/connector.
|
|
48
|
+
- **`CNS2004`:** escalate to the Integration Service owner team with trigger ID + `traceId`. Deleting and recreating the trigger is a customer-side workaround *only if* losing the trigger's history/config is acceptable — offer it, don't default to it.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: high
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# HTTP Client Exception (DAP-RT-1103)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket: 🛠 B2 — Service/provider-side (not customer-fixable in the workflow → escalate).** A network-level failure between the robot and UiPath's Integration Service endpoint. On self-hosted robots the customer owns the egress path (firewall/proxy/DNS) — that part is theirs to fix; it is never a workflow change. On UiPath-hosted cloud robots there is no customer-side network to fix — escalate. Lead with: "This is a connectivity issue between the robot and UiPath's cloud, not a workflow bug — check network egress or escalate." See [dap-error-codes-reference.md](../dap-error-codes-reference.md#fault-ownership--the-two-bucket-decision).
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
**What the target host is:** the connector request goes from the activity runtime (robot) to **UiPath's Integration Service endpoint** in Automation Cloud — the connection's `ApiBaseUri`, shaped like `https://cloud.uipath.com/<org>/<tenant>/elements_`. IS then calls the vendor API on the robot's behalf. `DAP-RT-1103` means the runtime could not reach the **UiPath endpoint**; a vendor-side failure returns an HTTP status through IS and surfaces as `DAP-RT-1101` instead.
|
|
12
|
+
|
|
13
|
+
What this looks like:
|
|
14
|
+
- Error code `DAP-RT-1103` (HttpClientException)
|
|
15
|
+
- Network-level failure — no HTTP status returned (exception before/without a response)
|
|
16
|
+
- `ProviderErrorCode` absent (the request never got a response)
|
|
17
|
+
- Maps to the `retry-exception` SRE alert when retries are exhausted
|
|
18
|
+
|
|
19
|
+
What can cause it:
|
|
20
|
+
- DNS cannot resolve the UiPath cloud host from the robot machine
|
|
21
|
+
- Firewall/proxy blocks outbound traffic to UiPath cloud domains — see [Configuring the firewall](https://docs.uipath.com/automation-cloud/automation-cloud/latest/admin-guide/configuring-firewall) for the domains and outbound IP ranges to allowlist
|
|
22
|
+
- TLS handshake failure — usually an SSL-inspecting corporate proxy re-signing the certificate, or a stripped trust store on the robot machine
|
|
23
|
+
- Request timeout to the IS endpoint, or a transient blip — absorbed by IS's automatic retry (max 2 attempts, jittered backoff; see [Retry semantics](../dap-error-codes-reference.md#retry-semantics)) unless sustained
|
|
24
|
+
|
|
25
|
+
What to look for:
|
|
26
|
+
- Absence of `ProviderErrorCode` — distinguishes this from `DAP-RT-1101` (a status was returned)
|
|
27
|
+
- Whether `retry-exception` fired — retries exhausted means sustained connectivity failure, not a blip
|
|
28
|
+
- **Where the job ran** — UiPath-hosted cloud robot (UiPath-managed network → escalate) vs self-hosted robot (customer machine/VM; customer owns DNS/firewall/proxy egress)
|
|
29
|
+
- `RequestId` to correlate timing across the call
|
|
30
|
+
|
|
31
|
+
## Investigation
|
|
32
|
+
|
|
33
|
+
1. **Confirm it is network-level, not provider-level** — verify `ProviderErrorCode` is absent. If a status is present, use [request-failed.md](./request-failed.md) instead.
|
|
34
|
+
2. **Read the connection resource file** — identify the connector and connection (see "Connection Resource File" in [overview.md](../overview.md)).
|
|
35
|
+
3. `uip is connections ping <connection-id>` — if ping also fails at the network layer, the problem is connectivity, not the operation.
|
|
36
|
+
4. **Determine the runtime environment** — the machine the job executed on (from the job's host identity): self-hosted robot / unattended machine vs UiPath-hosted cloud robot. Self-hosted egress rules differ from a developer's machine — debug may succeed where deployed fails.
|
|
37
|
+
5. On self-hosted robots: check the UiPath cloud host resolves and is reachable from that machine (DNS, firewall egress, proxy).
|
|
38
|
+
|
|
39
|
+
## Resolution
|
|
40
|
+
|
|
41
|
+
- **Self-hosted robot — DNS / firewall / proxy:** allowlist the UiPath cloud domains and outbound IP ranges from the robot's network, and configure proxy settings on the robot machine if required. Follow [Configuring the firewall](https://docs.uipath.com/automation-cloud/automation-cloud/latest/admin-guide/configuring-firewall).
|
|
42
|
+
- **Self-hosted robot — TLS:** if a corporate proxy performs SSL inspection, install/trust the proxy's CA on the robot machine or exclude UiPath cloud domains from inspection.
|
|
43
|
+
- **UiPath-hosted cloud robot:** no customer-side network to fix — escalate to UiPath support with the `DAP` code, `RequestId`, and timestamp.
|
|
44
|
+
- **Sustained `retry-exception`:** retries are already exhausted; application-level retry will not help. Route to whoever owns network egress (customer network team for self-hosted; UiPath for cloud robots).
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: high
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Missing Required Input (DAP-RT-1003 / DAP-RT-1007)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket: 👤 A — Customer-resolvable.** A required input value the activity needs was not supplied. The customer fixes it by providing the value. Lead with: "This is an input/configuration issue on your side — provide the missing field." See [dap-error-codes-reference.md](../dap-error-codes-reference.md#fault-ownership--the-two-bucket-decision).
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
What this looks like — IS rejected the call before reaching the provider because a required input was empty:
|
|
12
|
+
|
|
13
|
+
| Code | Name | Specific cause |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `DAP-RT-1003` | ArgumentIsRequired | A required input argument is missing |
|
|
16
|
+
| `DAP-RT-1007` | PropertyIsRequired | A required property is empty |
|
|
17
|
+
|
|
18
|
+
What can cause it:
|
|
19
|
+
- A required activity input was left unbound or bound to an empty/null variable
|
|
20
|
+
- An upstream step produced no value, leaving the required input empty at runtime
|
|
21
|
+
- The activity was published with a required field unset
|
|
22
|
+
|
|
23
|
+
What to look for:
|
|
24
|
+
- No `ProviderErrorCode` / provider status — the failure is input validation, before any provider call
|
|
25
|
+
- `ErrorMessage` naming the specific argument/property that is required
|
|
26
|
+
- Whether the input is bound to an expression that can resolve to empty/null
|
|
27
|
+
|
|
28
|
+
## Investigation
|
|
29
|
+
|
|
30
|
+
1. **Read `ErrorMessage` from the customEvent** — it names the missing argument or property. That is the field to fix.
|
|
31
|
+
2. **Read the workflow source** — open the failing activity and check the named input: is it unbound, bound to an empty literal, or bound to a variable that can be null/empty at runtime?
|
|
32
|
+
3. **Trace the value upstream** — if the input is bound to a variable, confirm the step that sets it actually produces a value on every path.
|
|
33
|
+
|
|
34
|
+
## Resolution
|
|
35
|
+
|
|
36
|
+
- **Unbound / empty literal:** provide the required field value on the activity, then republish.
|
|
37
|
+
- **Bound to a variable that resolves empty:** fix the upstream step so the variable is always populated, or add a guard that supplies a default before the activity runs.
|
|
38
|
+
- After the fix, re-run to confirm the input-validation error clears.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: high
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Request Failed (DAP-RT-1101)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket:** depends on `ProviderErrorCode`. 4xx auth/input (`401`/`403`/`404`/`400`/`422`) → **👤 Bucket A** (customer fixes credentials/permissions/input). `429`/`5xx` → **🛠 Bucket B2** (provider-side outage/rate-limit — wait/retry, escalate if sustained). Always split on the status code before answering. See [dap-error-codes-reference.md](../dap-error-codes-reference.md#fault-ownership--the-two-bucket-decision).
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
What this looks like:
|
|
12
|
+
- Error code `DAP-RT-1101` (RequestFailed) — the most common IS runtime failure
|
|
13
|
+
- A `ProviderErrorCode` / provider status is present — the connector's downstream API returned an error (a downstream provider response, not an IS-side exception; there is no `IsServiceError` field to read)
|
|
14
|
+
- Maps to the `http-4xx` / `retry-exception` SRE alerts
|
|
15
|
+
|
|
16
|
+
The DAP code alone does not name the root cause — **the `ProviderErrorCode` (the 3rd-party API's own status) does.** Route on it:
|
|
17
|
+
|
|
18
|
+
| Provider status | Meaning | Direction |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| 401 | Token rejected by the provider | Auth — the connection's OAuth token is expired/revoked; re-authenticate (see [connection-auth-expired.md](./connection-auth-expired.md)) |
|
|
21
|
+
| 403 | Authenticated but not permitted | Connection scope/permissions too narrow for the operation |
|
|
22
|
+
| 404 | Object/record not found | Input references a resource that does not exist in the external service |
|
|
23
|
+
| 429 | Rate limited | Quota exceeded — retries (max 2) already exhausted |
|
|
24
|
+
| 5xx | Provider outage | Transient on the provider side; retries exhausted = sustained outage |
|
|
25
|
+
|
|
26
|
+
What to look for:
|
|
27
|
+
- `ProviderErrorCode` + `ProviderErrorMessage` in the customEvent — the decisive evidence
|
|
28
|
+
- `RequestId` — correlates the IS call to the connector log
|
|
29
|
+
- Whether the same operation worked before (regression vs misconfiguration)
|
|
30
|
+
- Whether a `retry-exception` alert fired — means 429/5xx retries were exhausted (sustained, not a blip)
|
|
31
|
+
|
|
32
|
+
## Investigation
|
|
33
|
+
|
|
34
|
+
1. **Read `ProviderErrorCode` / `ProviderErrorMessage` from the customEvent first.** This is the classifier — do not draw conclusions from `DAP-RT-1101` alone.
|
|
35
|
+
2. **Read the connection resource file** — if source code is available, find the connection JSON (see "Connection Resource File" in [overview.md](../overview.md)) to get the connector name, connection ID, and `authenticationType`.
|
|
36
|
+
3. `uip is connections ping <connection-id>` — confirm the connection itself is active (rules out auth-vs-operation).
|
|
37
|
+
4. Branch on `ProviderErrorCode`:
|
|
38
|
+
- **401:** the connection's OAuth token was rejected by the provider — re-authenticate the connection (see [connection-auth-expired.md](./connection-auth-expired.md)). If ping is healthy but the provider still returns 401, the granted scope is wrong. (Note: `DAP-GE-3004` is unrelated — it is a first-party-service token failure, not a connection token; see [token-refresh-failed.md](./token-refresh-failed.md).)
|
|
39
|
+
- **403:** `uip is resources describe <connector-key> <object-name>` — check the operation's required permissions/scopes against what the connection was granted.
|
|
40
|
+
- **404:** verify the record/object ID in the activity input exists in the external service.
|
|
41
|
+
- **429/5xx:** check `RequestId` against the provider's status; if `retry-exception` fired, retries were exhausted.
|
|
42
|
+
|
|
43
|
+
## Resolution
|
|
44
|
+
|
|
45
|
+
- **401:** re-authenticate the connection (`uip is connections edit <connection-id>`). If the granted OAuth scope is insufficient, recreate the connection requesting the scope the operation needs.
|
|
46
|
+
- **403:** widen the connection's scope or grant the external account the permission the operation requires, then re-authenticate.
|
|
47
|
+
- **404:** correct the activity input to reference an existing record/object; guard upstream steps that produce the ID.
|
|
48
|
+
- **429:** reduce call frequency, add backoff/batching, or request a higher provider quota. IS already retried twice — application-level pacing is required.
|
|
49
|
+
- **5xx:** transient provider outage — retry later. If sustained (`retry-exception`), escalate to the provider; do not treat as a workflow bug.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: medium
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Response Mapping Mismatch (DAP-RT-1005 / DAP-RT-1155 / DAP-RT-1156)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket: 🛠 B1 — IS platform / connector defect (escalate to owner team).** The provider returned data but the connector's declared output schema no longer matches it (connector schema drift). No provider error status — the mapping fails inside IS after a successful call. The customer cannot fix connector metadata; updating the activity package to a matching version is the only customer-side mitigation. Lead with: "This is a connector schema-drift issue on the service side — update the activity package if a matching version exists, otherwise contact the owner team (Integration Service)." See [dap-error-codes-reference.md](../dap-error-codes-reference.md#fault-ownership--the-two-bucket-decision).
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
What this looks like — the provider call succeeded but IS could not map the response into the activity's output type:
|
|
12
|
+
|
|
13
|
+
| Code | Name | Specific cause |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| `DAP-RT-1005` | ApiResponseMismatch | Response shape doesn't match the activity's output type — connector schema drift |
|
|
16
|
+
| `DAP-RT-1155` | DataTableFieldTypeMismatch | A response field's type doesn't match the expected TypedDataTable column |
|
|
17
|
+
| `DAP-RT-1156` | TypedDataTableNotConstructedProperly | Output could not be assembled into the expected TypedDataTable |
|
|
18
|
+
|
|
19
|
+
What can cause it:
|
|
20
|
+
- The connector's response schema changed (provider API version drift) but the workflow's activity package is older
|
|
21
|
+
- The activity's declared output type no longer matches what the provider returns
|
|
22
|
+
- A field returned as a different type than the TypedDataTable column expects (e.g. string where a number is mapped)
|
|
23
|
+
|
|
24
|
+
Concrete scenario (`DAP-RT-1005`): a workflow was published months ago with a Salesforce activity package whose "Get Record" output declares `AnnualRevenue` as a number. The vendor (or a connector schema update) now returns that field as a string, or renames/removes it. Every run since: the provider call itself succeeds (HTTP 200, data returned), but IS fails to deserialize the payload into the activity's generated output type — the job faults at the mapping step with no provider error. Nothing changed in the workflow; the schema drifted underneath it. The same shape triggers `1155`/`1156` when the drifted field feeds a TypedDataTable column.
|
|
25
|
+
|
|
26
|
+
What to look for:
|
|
27
|
+
- No provider error status — the failure is IS-side mapping, not a provider error (the call returned data)
|
|
28
|
+
- The activity package version vs the current connector schema (drift is the usual cause of `1005`)
|
|
29
|
+
- `ProviderErrorMessage` is typically absent — the provider returned 200; mapping failed afterward
|
|
30
|
+
|
|
31
|
+
## Investigation
|
|
32
|
+
|
|
33
|
+
1. **Confirm it is a mapping failure, not a provider error** — there should be no `ProviderErrorCode` / provider status. If a provider status is present, use [request-failed.md](./request-failed.md).
|
|
34
|
+
2. **Read the connection resource file** — identify the connector and connection (see "Connection Resource File" in [overview.md](../overview.md)).
|
|
35
|
+
3. `uip is resources describe <connector-key> <object-name>` — get the current field definitions and compare against the activity's declared output type.
|
|
36
|
+
4. `uip is activities list <connector-key>` — check whether the activity/package version in the project lags the current connector schema.
|
|
37
|
+
|
|
38
|
+
## Resolution
|
|
39
|
+
|
|
40
|
+
- **`DAP-RT-1005` — schema drift:** update the connector activity package in the project to the version that matches the current response schema, then re-map the output and republish.
|
|
41
|
+
- **`DAP-RT-1155` — field type mismatch:** correct the TypedDataTable column type to match the field returned by `uip is resources describe`, or transform the field before mapping.
|
|
42
|
+
- **`DAP-RT-1156`:** re-create the output mapping from the current schema so the TypedDataTable is constructed from valid columns.
|
|
43
|
+
- If the provider genuinely changed its contract, align the activity configuration to the new schema rather than forcing the old mapping.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: high
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Token Refresh Failed (DAP-GE-3004)
|
|
6
|
+
|
|
7
|
+
> **Fault bucket: 🛠 B1 — IS platform / service-side (not customer-fixable → escalate).** `DAP-GE-3004` is IS failing to obtain an access token it needs to call a **first-party UiPath service** (e.g. Orchestrator, the Feature Flag service) while executing the activity. **This token is NOT the customer's connection credential** — it is issued by the platform for the first-party service, so re-authenticating the connection does nothing. Lead with: "This is a service-side token issue inside the platform, not your connection — retry; if it persists, contact the owner team (Integration Service)." See [dap-error-codes-reference.md](../dap-error-codes-reference.md#fault-ownership--the-two-bucket-decision).
|
|
8
|
+
|
|
9
|
+
## Context
|
|
10
|
+
|
|
11
|
+
What this looks like:
|
|
12
|
+
- Error code `DAP-GE-3004` (FailedToGetAccessToken)
|
|
13
|
+
- IS could not obtain an access token for a **first-party UiPath service** it calls at runtime (Orchestrator, Feature Flag service, …) — fails before any third-party provider request
|
|
14
|
+
- Occurs only at specific times — it is a first-party-service token-acquisition/refresh failure, typically transient
|
|
15
|
+
- No provider status returned — an IS-side exception, before the connection or provider layer (classify it as such from the code + message; there is no `IsServiceError` field)
|
|
16
|
+
- Maps to the `FailedToGetAccessToken` SRE signal
|
|
17
|
+
|
|
18
|
+
What can cause it:
|
|
19
|
+
- The platform identity/token service could not issue or refresh the token for the first-party service (transient outage or token-lifecycle window)
|
|
20
|
+
- The first-party service (Orchestrator / Feature Flag service) was briefly unavailable when IS requested the token
|
|
21
|
+
- A platform-side configuration or trust issue between IS and the first-party service
|
|
22
|
+
|
|
23
|
+
> **This is NOT a connection-credential problem.** The customer's connection OAuth token is unrelated to `DAP-GE-3004`. If the symptom is a genuine connection whose third-party OAuth token expired or was revoked, that surfaces as a provider `401` ([request-failed.md](./request-failed.md)) or the Maestro-surfaced [connection-auth-expired.md](./connection-auth-expired.md) — re-authenticate the connection there, not here.
|
|
24
|
+
|
|
25
|
+
What to look for:
|
|
26
|
+
- **No `ConnectionId` tied to a failing third-party auth** — the failure is platform-internal, not connection-scoped
|
|
27
|
+
- Whether the failure is intermittent / clustered in time (points to a transient first-party-service token window) vs sustained (points to a platform fault)
|
|
28
|
+
- Whether other tenants/processes hit the same code in the same window (a platform-wide signal, not a single workflow)
|
|
29
|
+
|
|
30
|
+
## Investigation
|
|
31
|
+
|
|
32
|
+
1. **Confirm it is the first-party-service token path, not a connection.** No third-party `ProviderErrorCode` / provider status (the failure is inside IS, not a provider response). Do **not** chase the connection — a healthy `uip is connections ping` here does not rule the cause out, and an unhealthy one is a separate issue.
|
|
33
|
+
2. **Establish timing and blast radius.** Check whether `DAP-GE-3004` is intermittent and whether it correlates with a known Orchestrator / Feature Flag service disruption window in the triage evidence.
|
|
34
|
+
3. **Check for recurrence.** A single occurrence that does not repeat on retry is a transient first-party-service token blip. Repeated/sustained occurrences indicate a platform fault to escalate.
|
|
35
|
+
|
|
36
|
+
## Resolution
|
|
37
|
+
|
|
38
|
+
**Primary: retry, then escalate — do NOT re-authenticate the connection.** The token comes from a first-party service, not the customer's connection.
|
|
39
|
+
|
|
40
|
+
- **Transient (single / intermittent):** re-run the job. First-party-service token acquisition usually recovers on its own; the run should succeed on retry.
|
|
41
|
+
- **Sustained / repeated:** escalate to the Integration Service owner team with the `DAP-GE-3004` code, `RequestId`, timestamps, and the affected first-party service (Orchestrator / Feature Flag service). This is a platform token-acquisition fault the customer cannot resolve from their workflow.
|
|
42
|
+
- **Do not** attempt connection re-authentication, connection editing, or connector auth-config changes for this code — they do not address a first-party-service token failure.
|