@uipath/skills 1.196.0 → 1.197.0
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 +5 -2
- package/CODEOWNERS +22 -7
- package/README.md +14 -1
- package/assets/skill-status.json +14 -1
- package/assets/uip-catalog-snapshot.json +13 -2
- package/hooks/hooks.json +12 -0
- package/hooks/send-telemetry.sh +445 -0
- package/hooks/suggest-permissions.sh +6 -0
- package/package.json +1 -1
- package/skills/uipath-admin/SKILL.md +24 -4
- package/skills/uipath-admin/references/audit-commands.md +25 -21
- package/skills/uipath-admin/references/audit-workflow-guide.md +26 -25
- package/skills/uipath-admin/references/diagnose/CAPABILITY.md +74 -0
- package/skills/uipath-admin/references/diagnose/references/failure-modes.md +228 -0
- package/skills/uipath-admin/references/diagnose/references/troubleshooting-guide.md +106 -0
- package/skills/uipath-admin/references/identity-troubleshoot-guide.md +251 -0
- package/skills/uipath-agents/SKILL.md +12 -8
- package/skills/uipath-agents/references/coded/capabilities/context-grounding.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/conversational-agents.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails-recommend.md +12 -7
- package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails.md +141 -1
- package/skills/uipath-agents/references/coded/capabilities/human-in-the-loop.md +2 -0
- package/skills/uipath-agents/references/coded/capabilities/integration-service.md +19 -33
- package/skills/uipath-agents/references/coded/lifecycle/bindings-reference.md +54 -22
- package/skills/uipath-agents/references/coded/lifecycle/build.md +1 -0
- package/skills/uipath-agents/references/coded/lifecycle/evaluations/evaluation-sets.md +5 -1
- package/skills/uipath-agents/references/coded/lifecycle/setup.md +3 -1
- package/skills/uipath-agents/references/coded/quickstart.md +11 -10
- package/skills/uipath-agents/references/coded-vs-lowcode-guide.md +1 -0
- package/skills/uipath-agents/references/context-grounding-patterns.md +1 -1
- package/skills/uipath-agents/references/lowcode/agent-definition.md +97 -12
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/analyze-attachments.md +2 -2
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/batch-transform/impl-json.md +40 -14
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/built-in-tools.md +4 -3
- package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/deeprag/impl-json.md +38 -6
- package/skills/uipath-agents/references/lowcode/capabilities/context/attachments.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/context/context.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/context/datafabric.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/context/index.md +7 -3
- package/skills/uipath-agents/references/lowcode/capabilities/escalation/escalation.md +49 -38
- package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails-recommend.md +3 -1
- package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails.md +49 -49
- package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +34 -14
- package/skills/uipath-agents/references/lowcode/capabilities/integration-service/integration-service.md +1 -1
- package/skills/uipath-agents/references/lowcode/capabilities/memory/memory.md +2 -0
- package/skills/uipath-agents/references/lowcode/capabilities/process/process.md +2 -2
- package/skills/uipath-agents/references/lowcode/capabilities/process/solution-files.md +1 -1
- package/skills/uipath-agents/references/lowcode/critical-rules/autonomous-critical-rules.md +15 -0
- package/skills/uipath-agents/references/lowcode/critical-rules/conversational-critical-rules.md +19 -0
- package/skills/uipath-agents/references/lowcode/{critical-rules.md → critical-rules/critical-rules.md} +25 -27
- package/skills/uipath-agents/references/lowcode/debug.md +6 -3
- package/skills/uipath-agents/references/lowcode/evaluations/evaluate.md +2 -0
- package/skills/uipath-agents/references/lowcode/lowcode.md +29 -6
- package/skills/uipath-agents/references/lowcode/model-selection-guide.md +4 -1
- package/skills/uipath-agents/references/lowcode/project-lifecycle.md +20 -8
- package/skills/uipath-agents/references/lowcode/prompting/agent-prompting-guide.md +17 -0
- package/skills/uipath-agents/references/lowcode/{agent-prompting-guide.md → prompting/autonomous-agent-prompting-guide.md} +9 -11
- package/skills/uipath-agents/references/lowcode/prompting/conversational-agent-prompting-guide.md +123 -0
- package/skills/uipath-agents/references/lowcode/solution-resources.md +1 -1
- package/skills/uipath-api-workflow/SKILL.md +32 -12
- package/skills/uipath-api-workflow/references/cli-reference.md +110 -22
- package/skills/uipath-api-workflow/references/connector-activity-discovery.md +43 -4
- package/skills/uipath-api-workflow/references/troubleshooting.md +23 -7
- package/skills/uipath-api-workflow/references/workflow-file-format.md +25 -7
- package/skills/uipath-coded-apps/SKILL.md +55 -12
- package/skills/uipath-coded-apps/assets/fixtures/governance-dashboard-starter-kit.tar.gz +0 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/build-dashboard.mjs +1371 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/capability-registry.json +845 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/build.mjs +338 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/edit.mjs +248 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/template.mjs +82 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/upgrade.mjs +73 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/lifecycle.mjs +207 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/setup-admin-folder.mjs +146 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/tests/regime-eject.test.mjs +124 -0
- package/skills/uipath-coded-apps/assets/scripts/dashboards/tests/resolution.test.mjs +1635 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/app-template.css +9 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/document-tab-template.css +139 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/form-template.css +442 -0
- package/skills/uipath-coded-apps/assets/templates/action-app/index-template.css +111 -0
- package/skills/uipath-coded-apps/assets/templates/action-app-template.md +357 -152
- package/skills/uipath-coded-apps/assets/templates/web-app-template.md +255 -78
- package/skills/uipath-coded-apps/references/create-action-app.md +284 -195
- package/skills/uipath-coded-apps/references/create-web-app.md +64 -26
- package/skills/uipath-coded-apps/references/dashboards/CAPABILITY.md +179 -0
- package/skills/uipath-coded-apps/references/dashboards/aesthetic/charting.md +138 -0
- package/skills/uipath-coded-apps/references/dashboards/aesthetic/layout-patterns.md +152 -0
- package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +423 -0
- package/skills/uipath-coded-apps/references/dashboards/plugins/deploy/impl.md +322 -0
- package/skills/uipath-coded-apps/references/dashboards/primitives/customization.md +66 -0
- package/skills/uipath-coded-apps/references/dashboards/primitives/detail-views.md +64 -0
- package/skills/uipath-coded-apps/references/dashboards/primitives/incremental-editor.md +92 -0
- package/skills/uipath-coded-apps/references/dashboards/primitives/state-file.md +64 -0
- package/skills/uipath-coded-apps/references/dashboards/primitives/tier-resolution.md +474 -0
- package/skills/uipath-coded-apps/references/debug.md +15 -21
- package/skills/uipath-coded-apps/references/oauth-client-setup.md +5 -5
- package/skills/uipath-coded-apps/references/oauth-scopes.md +64 -2
- package/skills/uipath-coded-apps/references/pack-publish-deploy.md +12 -5
- package/skills/uipath-coded-apps/references/patterns.md +10 -5
- package/skills/uipath-coded-apps/references/sdk/action-center.md +32 -6
- package/skills/uipath-coded-apps/references/sdk/agents.md +241 -0
- package/skills/uipath-coded-apps/references/sdk/governance-traces.md +186 -0
- package/skills/uipath-coded-apps/references/sdk/governance.md +72 -0
- package/skills/uipath-coded-apps/references/sdk/imports.md +4 -0
- package/skills/uipath-coded-apps/references/sdk/maestro.md +114 -0
- package/skills/uipath-coded-apps/references/sdk/orchestrator.md +80 -4
- package/skills/uipath-coded-apps/references/sdk/pagination.md +2 -0
- package/skills/uipath-coded-apps/references/sdk/traces.md +89 -0
- package/skills/uipath-coded-apps/references/widgets/validation-station.md +308 -0
- package/skills/uipath-coded-apps/scripts/validate-action-schema.js +241 -0
- package/skills/uipath-connector-builder/SKILL.md +192 -0
- package/skills/uipath-connector-builder/references/auth.md +171 -0
- package/skills/uipath-connector-builder/references/configuration.md +130 -0
- package/skills/uipath-connector-builder/references/debugging.md +80 -0
- package/skills/uipath-connector-builder/references/element-json.md +148 -0
- package/skills/uipath-connector-builder/references/events.md +132 -0
- package/skills/uipath-connector-builder/references/hooks.md +198 -0
- package/skills/uipath-connector-builder/references/overview.md +78 -0
- package/skills/uipath-connector-builder/references/standard-resources.md +111 -0
- package/skills/uipath-connector-builder/references/system-resources.md +85 -0
- package/skills/uipath-feedback/SKILL.md +43 -29
- package/skills/{uipath-agents/references/coded/frameworks/coded-functions.md → uipath-functions/SKILL.md} +36 -23
- package/skills/uipath-governance/SKILL.md +49 -8
- package/skills/uipath-governance/references/aops-policy/aops-policy-commands.md +10 -10
- package/skills/uipath-governance/references/aops-policy/aops-policy-deploy-guide.md +7 -7
- package/skills/uipath-governance/references/auth-context.md +101 -0
- package/skills/uipath-governance/references/cli-cheatsheet.md +207 -0
- package/skills/uipath-governance/references/compliance-pack/catalog/impl.md +79 -0
- package/skills/uipath-governance/references/compliance-pack/coverage/impl.md +141 -0
- package/skills/uipath-governance/references/compliance-pack/disable/impl.md +39 -0
- package/skills/uipath-governance/references/compliance-pack/full-apply/impl.md +164 -0
- package/skills/uipath-governance/references/compliance-pack/partial-apply/impl.md +266 -0
- package/skills/uipath-governance/references/compliance-pack/partial-apply/merge-overrides-guide.md +28 -0
- package/skills/uipath-governance/references/compliance-pack/partial-apply/planning.md +82 -0
- package/skills/uipath-governance/references/compliance-pack/partial-apply/synthesize-formdata-guide.md +22 -0
- package/skills/uipath-governance/references/compliance-pack/preview-gate.md +43 -0
- package/skills/uipath-governance/references/compliance-pack/query/impl.md +75 -0
- package/skills/uipath-governance/references/diagnose/CAPABILITY.md +71 -0
- package/skills/uipath-governance/references/diagnose/references/failure-modes.md +201 -0
- package/skills/uipath-governance/references/diagnose/references/troubleshooting-guide.md +137 -0
- package/skills/uipath-governance/references/disambiguation-guide.md +15 -0
- package/skills/uipath-governance/scripts/merge-overrides.mjs +81 -0
- package/skills/uipath-governance/scripts/synthesize-formdata.mjs +86 -0
- package/skills/uipath-human-in-the-loop/SKILL.md +30 -25
- package/skills/uipath-human-in-the-loop/references/hitl-node-apptask.md +38 -4
- package/skills/uipath-human-in-the-loop/references/hitl-node-coded-action-app.md +2 -3
- package/skills/uipath-human-in-the-loop/references/hitl-node-quickform.md +92 -34
- package/skills/uipath-ixp/SKILL.md +120 -0
- package/skills/uipath-ixp/references/cli-reference.md +121 -0
- package/skills/uipath-ixp/references/improve-prompts-guide.md +283 -0
- package/skills/uipath-ixp/references/label-documents-guide.md +207 -0
- package/skills/uipath-ixp/references/project-setup-guide.md +90 -0
- package/skills/uipath-maestro-bpmn/SKILL.md +167 -68
- package/skills/uipath-maestro-bpmn/references/cli-conventions.md +47 -0
- package/skills/uipath-maestro-bpmn/references/diagnose/CAPABILITY.md +6 -6
- package/skills/uipath-maestro-bpmn/references/operate/CAPABILITY.md +3 -3
- package/skills/uipath-maestro-bpmn/references/registry-workflow.md +199 -0
- package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +500 -0
- package/skills/uipath-maestro-bpmn/validator/README.md +214 -0
- package/skills/uipath-maestro-bpmn/validator/bpmn-spec.json +2477 -0
- package/skills/uipath-maestro-bpmn/validator/model.mjs +419 -0
- package/skills/uipath-maestro-bpmn/validator/package.json +17 -0
- package/skills/uipath-maestro-bpmn/validator/rules.mjs +1403 -0
- package/skills/uipath-maestro-bpmn/validator/samples/invalid-conditional-and-variable.bpmn +25 -0
- package/skills/uipath-maestro-bpmn/validator/samples/valid-baseline.bpmn +52 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.0.bpmn +157 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.1.bpmn +333 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.1.0.bpmn +598 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.2.0.bpmn +1709 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.2.0.bpmn +564 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.3.0.bpmn +671 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.4.0.bpmn +1045 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.5.0.bpmn +1176 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.6.0.bpmn +670 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.7.0.bpmn +466 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Can_Parse_Complex_Process_With_Task_Gateway_BoundaryEvent_etc.bpmn +74 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExclusiveGatewayDefaultFlow.bpmn +32 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExternalAgentWorkflow.bpmn +62 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Golden_Scenario.initial.bpmn +361 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/InclusiveJoinRouteAwayBranch.bpmn +62 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_AsyncExecution_And_Create_CorrectModel.bpmn +74 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_ExtractionValidation_And_Create_CorrectModel.bpmn +35 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_FileUpload_And_Create_CorrectModel.bpmn +33 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_JobAttachment_And_Create_CorrectModel.bpmn +35 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_SubProcess_With_Multiple_Element_Types.bpmn +76 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartEventWithOutputs.bpmn +36 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartGatewayEnd.bpmn +44 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all elements.bpmn +516 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all_sequence_flow_types.bpmn +173 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/demo.bpmn +181 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-collapsed.bpmn +126 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-expanded.bpmn +122 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-003-collapsed_deeply-nested.bpmn +438 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.1.0.bpmn +87 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.3.0.bpmn +165 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ApiWorkflow.bpmn +39 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnNestedSubProcessTests.bpmn +102 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnTimerBoundaryEvents.bpmn +160 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithCatchAllErrorEventSubProcess.bpmn +45 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithSpecificErrorEventSubProcess.bpmn +46 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/CaseManagementWithConstantIdentifier.bpmn +218 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorBoundary.bpmn +78 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorPropagationInEventSubprocess.bpmn +340 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/EventBasedGatewayFirstCatcherWins.bpmn +56 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Example-EventBasedGateway.bpmn +117 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewayConditional.bpmn +45 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewaySharedEndEvent.bpmn +45 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveWithParallelGateway.bpmn +68 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/FourScriptTasks.bpmn +84 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/HitlTaskOnly.bpmn +55 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/InclusiveGatewayForkJoin.bpmn +69 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_BPMN_Elements_And_Create_CorrectModel.bpmn +20 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_HttpRequest_ServiceTask_And_Create_Correct_Model.bpmn +34 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_MessageBoundaryEvent_And_Create_CorrectModel.bpmn +87 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Script_Task_V2_And_Create_Correct_Model.bpmn +31 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Sets_Containers_Properly.bpmn +129 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ScriptWritesVariableThenGatewayBranches.bpmn +55 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/boundaryevent.bpmn +30 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/collapsed-subprocess.bpmn +83 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/connectable-types.bpmn +85 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/extensions-orchestrator-start-job.bpmn +80 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/multiparticipantpool.bpmn +77 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/nestedsubprocess.bpmn +36 -0
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/simple.bpmn +59 -0
- package/skills/uipath-maestro-bpmn/validator/test/integration.test.mjs +146 -0
- package/skills/uipath-maestro-bpmn/validator/test/model-helpers.mjs +42 -0
- package/skills/uipath-maestro-bpmn/validator/test/ported-rule-tests.mjs +983 -0
- package/skills/uipath-maestro-bpmn/validator/test/run-tests.mjs +530 -0
- package/skills/uipath-maestro-bpmn/validator/uipath-moddle.v1.json +715 -0
- package/skills/uipath-maestro-bpmn/validator/validate-bpmn.mjs +164 -0
- package/skills/uipath-maestro-case/SKILL.md +5 -1
- package/skills/uipath-maestro-case/assets/templates/sdd-template-examples.md +10 -0
- package/skills/uipath-maestro-case/assets/templates/sdd-template.md +89 -17
- package/skills/uipath-maestro-case/references/bindings-and-expressions.md +26 -0
- package/skills/uipath-maestro-case/references/case-editing-operations.md +3 -0
- package/skills/uipath-maestro-case/references/implementation.md +11 -4
- package/skills/uipath-maestro-case/references/phase-0-interview.md +8 -7
- package/skills/uipath-maestro-case/references/phased-execution.md +2 -1
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +21 -0
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +15 -9
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +131 -4
- package/skills/uipath-maestro-case/references/sdd-generation-rules.md +94 -17
- package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +1 -1
- package/skills/uipath-maestro-flow/references/author/references/planning-arch.md +2 -2
- package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/impl.md +11 -11
- package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/planning.md +6 -6
- package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-connector.md +4 -1
- package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/impl.md +157 -122
- package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/planning.md +16 -4
- package/skills/uipath-maestro-flow/references/evaluate/references/commands-reference.md +8 -8
- package/skills/uipath-maestro-flow/references/evaluate/references/running-guide.md +3 -3
- package/skills/uipath-maestro-flow/references/shared/cli-commands.md +1 -1
- package/skills/uipath-planner/SKILL.md +19 -8
- package/skills/uipath-planner/assets/templates/agent-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/api-workflow-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/case-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/coded-app-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/flow-sdd-template.md +14 -0
- package/skills/uipath-planner/assets/templates/rpa-sdd-template.md +40 -5
- package/skills/uipath-planner/references/asdd-crosswalk-guide.md +55 -0
- package/skills/uipath-planner/references/attended-reauth-pattern-guide.md +43 -0
- package/skills/uipath-planner/references/multi-skill-patterns-guide.md +4 -0
- package/skills/uipath-planner/references/non-pdd-lane-guide.md +2 -0
- package/skills/uipath-planner/references/pdd-analysis-guide.md +24 -1
- package/skills/uipath-planner/references/pdd-driven-lane-guide.md +6 -2
- package/skills/uipath-planner/references/plan-and-tasks-format.md +2 -0
- package/skills/uipath-planner/references/platform-availability-guide.md +43 -0
- package/skills/uipath-planner/references/product-selection-guide.md +20 -0
- package/skills/uipath-planner/references/sdd-generation-guide.md +90 -21
- package/skills/uipath-planner/references/tenant-library-search-guide.md +5 -1
- package/skills/uipath-planner/scripts/docx-extract.sh +54 -0
- package/skills/uipath-planner/scripts/sdd-to-docx.sh +76 -0
- package/skills/uipath-platform/SKILL.md +54 -7
- package/skills/uipath-platform/references/context-grounding/index-management.md +123 -0
- package/skills/uipath-platform/references/data-fabric/bulk-import.md +86 -0
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/choice-sets.md +33 -12
- package/skills/uipath-platform/references/data-fabric/data-fabric.md +352 -0
- package/skills/uipath-platform/references/data-fabric/entity-schema.md +444 -0
- package/skills/uipath-platform/references/data-fabric/file-attachments.md +122 -0
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/filter-platform-contract.md +3 -3
- package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/records-query.md +46 -10
- package/skills/uipath-platform/references/integration-service/http-request.md +15 -1
- package/skills/uipath-platform/references/integration-service/vendor-docs-registry.json +173 -0
- package/skills/uipath-platform/references/uip-commands.md +12 -4
- package/skills/uipath-review/SKILL.md +53 -12
- package/skills/uipath-review/references/agents/agent-common-issues.md +1 -1
- package/skills/uipath-review/references/agents/agent-grading-rubric.md +133 -0
- package/skills/uipath-review/references/agents/agent-review-checklist.md +23 -3
- package/skills/uipath-review/references/agents/agents-coded-rules.md +7 -0
- package/skills/uipath-review/references/agents/agents-lowcode-rules.md +13 -3
- package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +198 -0
- package/skills/uipath-review/references/architecture-assessment-guide.md +2 -0
- package/skills/uipath-review/references/review-workflow-guide.md +9 -5
- package/skills/uipath-review/references/rule-catalog-workflow.md +3 -3
- package/skills/uipath-rpa/SKILL.md +18 -6
- package/skills/uipath-rpa/references/cli-reference.md +57 -3
- package/skills/uipath-rpa/references/common-activity-card.md +1 -1
- package/skills/uipath-rpa/references/connector-capabilities.md +2 -0
- package/skills/uipath-rpa/references/data-manipulation-guide.md +311 -0
- package/skills/uipath-rpa/references/environment-setup.md +0 -2
- package/skills/uipath-rpa/references/error-handling-guide.md +381 -0
- package/skills/uipath-rpa/references/is-connector-xaml-guide.md +127 -11
- package/skills/uipath-rpa/references/reframework-guide.md +2 -0
- package/skills/uipath-rpa/references/testing-guide.md +19 -0
- package/skills/uipath-rpa/references/ui-automation-guide.md +129 -18
- package/skills/uipath-rpa/references/uia-configure-target-workflows.md +22 -1
- package/skills/uipath-rpa/references/uia-elements-interaction-guide.md +93 -0
- package/skills/uipath-rpa/references/xaml/canvas-layout-guide.md +41 -4
- package/skills/uipath-rpa/references/xaml/common-pitfalls.md +12 -3
- package/skills/uipath-rpa/references/xaml/flowchart-guide.md +113 -0
- package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +5 -9
- package/skills/uipath-solution/SKILL.md +11 -8
- package/skills/uipath-solution/references/pack-and-deploy.md +18 -1
- package/skills/uipath-solution/references/solution-overview.md +3 -0
- package/skills/uipath-test/SKILL.md +2 -1
- package/skills/uipath-troubleshoot/SKILL.md +24 -26
- package/skills/uipath-troubleshoot/agents/depth-verifier.md +24 -25
- package/skills/uipath-troubleshoot/agents/hypothesis-generator.md +8 -4
- package/skills/uipath-troubleshoot/agents/hypothesis-tester.md +85 -38
- package/skills/uipath-troubleshoot/agents/presenter.md +7 -7
- package/skills/uipath-troubleshoot/agents/scope-checker.md +3 -6
- package/skills/uipath-troubleshoot/agents/shared.md +26 -21
- package/skills/uipath-troubleshoot/agents/triage.md +117 -49
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/investigation_guide.md +43 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/overview.md +57 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-action-failed-after-find.md +100 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-cell-targeting-failures.md +111 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-element-not-found.md +125 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-get-text-empty-or-wrong-result.md +117 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-invalid-descriptor.md +102 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scope-setup-failures.md +136 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scroll-search-failures.md +114 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-server-auth-throttling-network.md +95 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-silent-failures-and-false-results.md +124 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/presentation.md +8 -0
- package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/summary.md +15 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/investigation_guide.md +42 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/overview.md +41 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/connect-to-database-failures.md +104 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/execute-non-query-failures.md +97 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/execute-query-failures.md +134 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/start-transaction-failures.md +94 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/presentation.md +10 -0
- package/skills/uipath-troubleshoot/references/activity-packages/database-activities/summary.md +10 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/investigation_guide.md +27 -9
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/overview.md +51 -10
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/append-range-failures.md +146 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/delete-range-failures.md +126 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/excel-application-card-failures.md +139 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/excel-application-scope-failures.md +118 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/execute-macro-failures.md +149 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/write-range-failures.md +145 -0
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/presentation.md +12 -7
- package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/summary.md +6 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/investigation_guide.md +1 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/overview.md +12 -4
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/connection-and-auth-failures.md +55 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/drive-file-not-found.md +18 -10
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/get-newest-email-not-found.md +9 -8
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/invalid-or-null-input.md +68 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/transient-and-timeout-errors.md +52 -0
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/upload-storage-quota-exceeded.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/summary.md +5 -2
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/overview.md +28 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/delete-outlook-mail-failures.md +105 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/get-outlook-mail-failures.md +109 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/move-outlook-mail-failures.md +97 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/send-outlook-mail-failures.md +95 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/summary.md +8 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/investigation_guide.md +23 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/overview.md +9 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/application-scope-misconfigured.md +49 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/authentication-token-invalid.md +53 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/copy-item-argument-null.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/create-folder-invalid-path.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/download-file-conversion-or-destination.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/drive-item-not-found.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/email-trigger-connection-event-failure.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/insufficient-graph-scope.md +44 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/legacy-mail-null-reference.md +43 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-folder-not-found.md +4 -3
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-invalid-odata-query.md +43 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-message-not-found.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/request-throttled.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/send-mail-rejected.md +52 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/transient-service-error.md +48 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/upload-file-quota-or-size.md +47 -0
- package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/summary.md +15 -1
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/investigation_guide.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/overview.md +38 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/invoke-method-failures.md +57 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/invoke-python-method-pipe-is-broken.md +44 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/load-script-failures.md +62 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/python-path-not-valid.md +39 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/python-scope-architecture-version-mismatch.md +41 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/working-folder-relative-path.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/presentation.md +9 -0
- package/skills/uipath-troubleshoot/references/activity-packages/python-activities/summary.md +12 -0
- 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/system-activities/playbooks/get-asset-robot-not-authenticated.md +29 -22
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/summary.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/investigation_guide.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/overview.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-malformed-input.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-null-input.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-type-mismatch.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-client-null-reference.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-connection-failure.md +48 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-timeout.md +40 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/net-http-request-aggregate-failure.md +38 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/summary.md +13 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/investigation_guide.md +55 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/overview.md +82 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/add-picture-failures.md +51 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/append-text-missing-container.md +31 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/append-text-zero-byte-file.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-com-hang.md +46 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-missing-output-dir.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-output-path-format.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-doc-format.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-missing-container.md +29 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-protected-view.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-com-busy.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-file-locked.md +33 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-headers-textboxes-skipped.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-length-limit.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-loop-template-overwrite.md +31 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-multiline-formatting.md +31 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-silent-no-substitution.md +32 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-version-mismatch.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-com-interop-failures.md +52 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-com-start-background-session0.md +50 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-export-pdf-com-wrong-thread.md +46 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-open-sharepoint-url-com-command-failed.md +45 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-cannot-create-unknown-type.md +30 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-com-not-installed.md +35 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-file-corrupted.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-file-path-not-found.md +36 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-hangs-background-prompt.md +34 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/presentation.md +11 -0
- package/skills/uipath-troubleshoot/references/activity-packages/word-activities/summary.md +38 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/investigation_guide.md +9 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/overview.md +7 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-invalid.md +9 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-aggregate-exception.md +30 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-general-exception.md +43 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-null-reference.md +36 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-remote-exception.md +31 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-runtime-exception.md +40 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +5 -0
- package/skills/uipath-troubleshoot/references/products/maestro/investigation_guide.md +2 -1
- package/skills/uipath-troubleshoot/references/products/orchestrator/investigation_guide.md +105 -10
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-faulted-logon-failure.md +1 -1
- package/skills/uipath-troubleshoot/references/summary.md +59 -3
- package/skills/uipath-troubleshoot/schemas/evidence.schema.md +48 -0
- package/skills/uipath-troubleshoot/schemas/hypotheses.schema.md +22 -7
- package/skills/uipath-troubleshoot/schemas/scope-check.schema.md +1 -1
- package/skills/uipath-troubleshoot/schemas/state.schema.md +81 -6
- package/version-manifest.json +2 -2
- package/skills/uipath-data-fabric/SKILL.md +0 -239
- package/skills/uipath-data-fabric/references/bulk-import.md +0 -73
- package/skills/uipath-data-fabric/references/entity-schema.md +0 -391
- package/skills/uipath-data-fabric/references/file-attachments.md +0 -65
- package/skills/uipath-maestro-bpmn/.maintenance/README.md +0 -241
- package/skills/uipath-maestro-bpmn/.maintenance/check-all.sh +0 -41
- package/skills/uipath-maestro-bpmn/.maintenance/check-anchors.sh +0 -83
- package/skills/uipath-maestro-bpmn/.maintenance/check-depth.sh +0 -132
- package/skills/uipath-maestro-bpmn/.maintenance/check-link-text.sh +0 -123
- package/skills/uipath-maestro-bpmn/.maintenance/check-links.sh +0 -70
- package/skills/uipath-maestro-bpmn/.maintenance/check-orphans.sh +0 -93
- package/skills/uipath-maestro-bpmn/.maintenance/check-plugin-pairs.sh +0 -39
- package/skills/uipath-maestro-bpmn/.maintenance/check-real-pack.sh +0 -79
- package/skills/uipath-maestro-bpmn/.maintenance/check-template.sh +0 -42
- package/skills/uipath-maestro-bpmn/.maintenance/check-uip-commands.sh +0 -266
- package/skills/uipath-maestro-bpmn/.maintenance/check-validation-fixtures.py +0 -1255
- package/skills/uipath-maestro-bpmn/.maintenance/check-validation-fixtures.sh +0 -8
- package/skills/uipath-maestro-bpmn/fixtures/validation/README.md +0 -94
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/agent-invocation.bpmn +0 -62
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/bindings_v2.json +0 -37
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/entry-points.json +0 -21
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/bindings_v2.json +0 -68
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/contract-variants.bpmn +0 -270
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/bindings_v2.json +0 -19
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/gateway-boundary-error.bpmn +0 -91
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/bindings_v2.json +0 -4
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/imported-brownfield-preservation.bpmn +0 -63
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/bindings_v2.json +0 -52
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/entry-points.json +0 -21
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/integration-service-enriched.bpmn +0 -65
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/bindings_v2.json +0 -4
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/linear-process.bpmn +0 -55
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/bindings_v2.json +0 -20
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/entry-points.json +0 -17
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/registry-coverage-matrix.bpmn +0 -207
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/bindings_v2.json +0 -4
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/entry-points.json +0 -33
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/subprocess-multi-instance.bpmn +0 -94
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/bindings_v2.json +0 -124
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/entry-points.json +0 -25
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/operate.json +0 -9
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/package-descriptor.json +0 -10
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/project.uiproj +0 -7
- package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/wrapper-family-contract.bpmn +0 -151
- package/skills/uipath-maestro-bpmn/references/author/CAPABILITY.md +0 -141
- package/skills/uipath-maestro-bpmn/references/author/references/brownfield.md +0 -48
- package/skills/uipath-maestro-bpmn/references/author/references/editing-operations.md +0 -75
- package/skills/uipath-maestro-bpmn/references/author/references/greenfield.md +0 -41
- package/skills/uipath-maestro-bpmn/references/author/references/planning-arch.md +0 -82
- package/skills/uipath-maestro-bpmn/references/author/references/planning-impl.md +0 -104
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/agents/impl.md +0 -34
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/agents/planning.md +0 -38
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/api-workflows/impl.md +0 -37
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/api-workflows/planning.md +0 -28
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/business-rules/impl.md +0 -36
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/business-rules/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/call-activity-subprocess/impl.md +0 -67
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/call-activity-subprocess/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/connectors/impl.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/connectors/planning.md +0 -33
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/gateways/impl.md +0 -32
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/gateways/planning.md +0 -34
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/hitl/impl.md +0 -42
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/hitl/planning.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/integration-service/impl.md +0 -134
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/integration-service/planning.md +0 -67
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/multi-instance/impl.md +0 -50
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/multi-instance/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/queues/impl.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/queues/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/rpa-jobs/impl.md +0 -35
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/rpa-jobs/planning.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/script/impl.md +0 -118
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/script/planning.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/sequence-flows/impl.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/sequence-flows/planning.md +0 -30
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/service-tasks/impl.md +0 -33
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/service-tasks/planning.md +0 -31
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/signals/impl.md +0 -33
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/signals/planning.md +0 -46
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/start-end-events/impl.md +0 -59
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/start-end-events/planning.md +0 -37
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/waits-triggers/impl.md +0 -40
- package/skills/uipath-maestro-bpmn/references/author/references/plugins/waits-triggers/planning.md +0 -34
- package/skills/uipath-maestro-bpmn/references/author/references/supported-elements.md +0 -123
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/README.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/agent-job.md +0 -36
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/api-workflow.md +0 -29
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/business-rule.md +0 -18
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/call-activity.md +0 -56
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/hitl.md +0 -17
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/http-request.md +0 -119
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/queue.md +0 -21
- package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/rpa-job.md +0 -23
- package/skills/uipath-maestro-bpmn/references/author/references/validation.md +0 -118
- package/skills/uipath-maestro-bpmn/references/shared/bpmn-xml-contract.md +0 -197
- package/skills/uipath-maestro-bpmn/references/shared/cli-conventions.md +0 -46
- package/skills/uipath-maestro-bpmn/references/shared/error-handling.md +0 -82
- package/skills/uipath-maestro-bpmn/references/shared/variables-bindings-expressions.md +0 -150
- package/skills/uipath-maestro-bpmn/references/shared/wrapper-shells.md +0 -554
- /package/skills/uipath-maestro-bpmn/references/{shared/expression-authoring.md → expression-authoring.md} +0 -0
- /package/skills/uipath-maestro-bpmn/references/{shared/public-safety.md → public-safety.md} +0 -0
- /package/{agents → skills/uipath-rpa/agents}/uipath-project-discovery-agent.md +0 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: medium
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Get Outlook Mail Messages Failures
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
A `UiPath.Mail.Outlook.Activities` `Get Outlook Mail Messages` (`GetOutlookMailMessages`) activity reads messages from a folder of the **locally installed Outlook desktop application** through COM interop — it does not call a mail API. It resolves the `MailFolder` (and optional `Account`) against the Outlook profile of the Windows user the Robot runs as, optionally narrows the result with a `Filter` (DASL/Jet) and `Top` / `OnlyUnreadMessages`, and returns the matching `MailMessage` list. Failures cluster around **folder resolution** (the `MailFolder` / `Account` string), **volume / timeout** (`TimeoutMS` vs folder size), the **COM session** (Outlook installed + running + same privilege level), the **`Filter` syntax**, and **Cached Exchange Mode** sync (items that exist in Outlook but are not in the local cache).
|
|
10
|
+
|
|
11
|
+
This activity shares the desktop-COM surface with `Send Outlook Mail Message` — Outlook-not-running / not-registered / bitness and privilege issues are diagnosed the same way (see [send-outlook-mail-failures.md](./send-outlook-mail-failures.md) branch 1). What is specific to `Get` is **folder resolution**, the **`Filter`** expression, and **Cached Exchange Mode** desync. For unattended / server-side mail with no desktop Outlook, prefer the modern Graph **o365-activities** (`Get Newest Email`, folder-scoped reads).
|
|
12
|
+
|
|
13
|
+
What this looks like — Get Outlook Mail faults surface as one of these signatures:
|
|
14
|
+
|
|
15
|
+
- `The specified folder does not exist` (the configured `MailFolder` could not be resolved) — branch 1.
|
|
16
|
+
- `The operation has timed out` after `TimeoutMS` while pulling the message list — branch 2.
|
|
17
|
+
- `The Outlook application is not running` / a COM cast failure, or the activity **freezes** with no exception — branch 3.
|
|
18
|
+
- The activity throws on an invalid `Filter`, or returns **zero results** while a `Filter` is set even though matching mail exists — branch 4.
|
|
19
|
+
- **No exception**, but the activity silently misses recent (or older) messages that are clearly visible in the Outlook desktop client — branch 5.
|
|
20
|
+
|
|
21
|
+
What can cause it (cause-branches — pick the right one from evidence):
|
|
22
|
+
|
|
23
|
+
1. **Folder not resolved (`MailFolder` / `Account`).** The `MailFolder` string does not map to a real Outlook folder. Common reasons: **nested-folder syntax** — a backslash path like `Inbox\Invoices` fails on some Mail-package versions (target the top-level `Inbox` first, or use the absolute form `\\your-email@domain.com\Inbox\Invoices`); **shared / generic mailbox** — reading from a shared box requires its primary address in the `Account` field (leaving `Account` blank uses only the default profile); **language discrepancy** — the folder name must match the Outlook UI language exactly (e.g. `Posteingang`, not `Inbox`, on a German client).
|
|
24
|
+
2. **Timeout on a large folder.** The folder holds thousands of messages (or messages with massive attachments), so enumerating them exceeds `TimeoutMS` (default `30000` = 30 s) and Outlook lags.
|
|
25
|
+
3. **Outlook not running / COM session broken.** The activity needs the desktop Outlook **installed and initialized** in the Robot's session. On a fully **unattended / RDP** session the foreground COM connection can intermittently drop, or there is no running Outlook instance; a **privilege mismatch** (UiPath running elevated/as Administrator while Outlook runs as a normal user, or vice versa) makes Windows block the two processes from talking — surfacing as "Outlook is not running" or a freeze. (Install / registration / bitness problems are the same surface as `Send Outlook Mail` branch 1.)
|
|
26
|
+
4. **Malformed `Filter` (DASL / Jet).** The `Filter` property expects valid DASL/Jet query syntax. An unescaped or unquoted value (`[Subject] = VarSubject`) is invalid and the activity errors or returns zero results; the value must be single-quoted (`[Subject] = 'Text'`).
|
|
27
|
+
5. **Cached Exchange Mode desync.** With **Cached Exchange Mode** on and the **Offline Settings** slider restricted (e.g. "Mail to keep offline: 3 months"), messages outside that window are not in the local `.ost` cache, so the activity cannot see mail the user can see in the full client — **no error**, just missing results.
|
|
28
|
+
|
|
29
|
+
What to look for:
|
|
30
|
+
|
|
31
|
+
- **The exception text (or its absence).** "specified folder does not exist" → branch 1; "operation has timed out" → branch 2; "Outlook is not running" / COM cast / a hang → branch 3; a `Filter`-related error or zero-results-with-a-filter → branch 4; **no error but missing recent/old mail** → branch 5.
|
|
32
|
+
- **`MailFolder` + `Account`** (literal values, from `Main.xaml`) — the folder string (nested? absolute? localized?) and whether `Account` is set for a shared mailbox.
|
|
33
|
+
- **Folder volume and `Top` / `OnlyUnreadMessages` / `TimeoutMS`** — the message count in the target folder vs the timeout and `Top`. Load-bearing for branch 2.
|
|
34
|
+
- **Session type and privilege** — attended vs unattended/RDP, whether a desktop Outlook is running for the Robot's user, and whether UiPath and Outlook run at the **same privilege level**. Load-bearing for branch 3.
|
|
35
|
+
- **The `Filter` string** — DASL/Jet validity and value quoting. Load-bearing for branch 4.
|
|
36
|
+
- **Cached Exchange Mode state** — whether the account uses Cached Exchange Mode and how the Offline Settings slider is set. Load-bearing for branch 5 (and only verifiable on the host).
|
|
37
|
+
|
|
38
|
+
## Investigation
|
|
39
|
+
|
|
40
|
+
Go in this order — cheaper checks first.
|
|
41
|
+
|
|
42
|
+
1. **Capture the exact error (or confirm there is none), the activity config, and the host.** From `uip or jobs get <job-key> --output json` → `Info`: the exception class and message, or note that the job ended without one. From workflow source (`.xaml`): the `Get Outlook Mail Messages` node — `MailFolder`, `Account`, `Filter`, `Top`, `OnlyUnreadMessages`, `TimeoutMS`. From the job: the Robot **host** and whether the run was **attended or unattended**.
|
|
43
|
+
|
|
44
|
+
2. **Branch the diagnostic on the signature.**
|
|
45
|
+
- `The specified folder does not exist` → branch 1; go to step 3.
|
|
46
|
+
- `The operation has timed out` → branch 2; go to step 4.
|
|
47
|
+
- `Outlook is not running` / COM cast / a hang → branch 3; go to step 5.
|
|
48
|
+
- `Filter` error, or zero results with a `Filter` set → branch 4; go to step 6.
|
|
49
|
+
- No error but mail visible in the client is missing from the output → branch 5; go to step 7.
|
|
50
|
+
|
|
51
|
+
3. **Confirm branch 1 (folder not resolved).** Compare the literal `MailFolder` against the real Outlook folder tree for the target account. Check for a backslash nested path (`Inbox\Invoices`), whether the source is a **shared mailbox** (then `Account` must carry its address), and whether the folder name matches the **Outlook UI language**. Any of these mismatches confirms the branch.
|
|
52
|
+
|
|
53
|
+
4. **Confirm branch 2 (timeout on volume).** Read `TimeoutMS` and estimate the target folder's message count / attachment size. A 30 s default against a folder with thousands of messages (or large attachments) confirms the branch — especially when `Top` is high or unset and `OnlyUnreadMessages` is off.
|
|
54
|
+
|
|
55
|
+
5. **Confirm branch 3 (Outlook session / privilege).** Confirm the run is unattended/RDP and whether a desktop Outlook is running for the Robot's user, and compare the **privilege level** of UiPath vs Outlook. "Outlook is not running" / a freeze on an unattended host, or an elevation mismatch, confirms the branch. (For an install/registration/bitness cast error, follow [send-outlook-mail-failures.md](./send-outlook-mail-failures.md) branch 1.)
|
|
56
|
+
|
|
57
|
+
6. **Confirm branch 4 (filter syntax).** Read the `Filter` string. An unquoted value (`[Subject] = VarSubject`) or otherwise non-DASL/Jet syntax confirms the branch. Reproduce by removing the filter — if results return, the filter was the problem.
|
|
58
|
+
|
|
59
|
+
7. **Confirm branch 5 (Cached Exchange Mode desync).** Only when there is **no error** but expected messages are absent. Check (on the host) whether the account uses Cached Exchange Mode and how the Offline Settings slider is set; mail outside the cached window being missing confirms the branch.
|
|
60
|
+
|
|
61
|
+
The root cause must name **which of the five surfaces** the failure maps to, with the specific evidence: the exception text (or its absence), the `MailFolder`/`Account`/`Filter`/`Top`/`TimeoutMS` values, the session type and privilege, and the Cached Exchange Mode state. A generic "couldn't read mail" is not a confirmed finding.
|
|
62
|
+
|
|
63
|
+
## Resolution
|
|
64
|
+
|
|
65
|
+
Map the branch identified in Investigation to the fix:
|
|
66
|
+
|
|
67
|
+
- **Branch 1 — Folder not resolved:**
|
|
68
|
+
- For a **nested** folder, target the top-level folder first, or use the **absolute path** form: `\\your-email@domain.com\Inbox\Invoices` (rather than `Inbox\Invoices`, which fails on some Mail-package versions).
|
|
69
|
+
- For a **shared / generic mailbox**, set the shared box's primary address in the **`Account`** field. Leave `Account` blank only to use the default Outlook profile.
|
|
70
|
+
- Match the folder name to the **exact Outlook UI language** (e.g. `Posteingang` on a German client, not `Inbox`).
|
|
71
|
+
|
|
72
|
+
- **Branch 2 — Timeout on a large folder:**
|
|
73
|
+
- Raise `TimeoutMS` above the worst observed enumeration time (it is in **milliseconds**: `60000` = 60 s).
|
|
74
|
+
- Reduce the batch: set `Top` to a small number (e.g. `10`–`20`) instead of a high/unset value, and turn on **`OnlyUnreadMessages`** when read mail does not need parsing.
|
|
75
|
+
- For a chronically huge folder, narrow with a `Filter` (branch 4) or migrate the read to the modern Graph **o365-activities**, which paginate server-side.
|
|
76
|
+
|
|
77
|
+
- **Branch 3 — Outlook session / privilege:**
|
|
78
|
+
- Ensure a desktop Outlook is **running and initialized** in the Robot's session before the activity — e.g. a `Start Process` on `outlook.exe` immediately before the mail activity to guarantee a valid foreground instance.
|
|
79
|
+
- Run UiPath (Studio/Robot) and Outlook at the **same privilege level** — both elevated or both normal — so Windows does not block the cross-process COM call.
|
|
80
|
+
- For install / registration / bitness errors, see [send-outlook-mail-failures.md](./send-outlook-mail-failures.md) branch 1; for unattended reliability, prefer the modern Graph **o365-activities** (no desktop dependency).
|
|
81
|
+
|
|
82
|
+
- **Branch 4 — Malformed `Filter`:**
|
|
83
|
+
- Use valid DASL/Jet syntax and **single-quote** the value. Incorrect: `[Subject] = VarSubject`. Correct: `[Subject] = 'Text to find'`. With a variable: `"[Subject] = '" + mySubjectVariable + "'"`.
|
|
84
|
+
- Validate the filter against a small known-matching set before running at scale.
|
|
85
|
+
|
|
86
|
+
- **Branch 5 — Cached Exchange Mode desync:**
|
|
87
|
+
- In Outlook: `File > Account Settings > Account Settings > (select account) > Change > Offline Settings`. Move the **"Mail to keep offline"** slider to **All**, or temporarily turn **off Cached Exchange Mode**, then re-run to confirm the missing messages now pass through.
|
|
88
|
+
- If turning the cache off fixes it, either keep it off for the Robot's profile or widen the cached window to cover the mail the automation must read.
|
|
89
|
+
|
|
90
|
+
## Anti-patterns (what NOT to do)
|
|
91
|
+
|
|
92
|
+
- **"Just raise `TimeoutMS` until it works."** A bigger timeout helps a genuinely large folder (branch 2) but does nothing for a folder that does not resolve (branch 1), a broken COM session (branch 3), a bad filter (branch 4), or a cache desync (branch 5). Confirm the branch first.
|
|
93
|
+
- **"Wrap Get Outlook Mail in a Try Catch and continue on empty."** Swallowing the error (or an empty result) turns a folder-resolution / filter / cache problem into downstream logic processing **zero** messages as if the mailbox were empty — a silent wrong result that is harder to find than the original fault.
|
|
94
|
+
- **"Run UiPath as Administrator to fix the COM error."** Elevation does not fix COM interop and often **breaks** it by creating a privilege mismatch with a normally-launched Outlook (branch 3). Match privilege levels instead.
|
|
95
|
+
- **"Use Get Outlook Mail Messages on an unattended server with no Outlook."** The activity requires the desktop client and a profile; for headless / unattended reads use the modern Graph **o365-activities** instead.
|
|
96
|
+
|
|
97
|
+
## Prevention (cross-branch)
|
|
98
|
+
|
|
99
|
+
- Address folders with the absolute `\\account\Inbox\Sub` form (and set `Account` for shared mailboxes), and keep folder names in the Outlook UI language — verify at design time, not at first failure.
|
|
100
|
+
- Bound every read with a sensible `Top` / `OnlyUnreadMessages` / `Filter` so a folder-size spike cannot time the activity out.
|
|
101
|
+
- For unattended automation, default to the modern Graph **o365-activities**; reserve the Outlook COM read for attended desktop automations, and keep UiPath and Outlook at the same privilege level.
|
|
102
|
+
- Parameterize and single-quote every `Filter` value; never concatenate an unquoted variable into a DASL/Jet expression.
|
|
103
|
+
- Set the Robot profile's Cached Exchange Mode window to cover the mail the automation must read (or disable the cache for that profile).
|
|
104
|
+
|
|
105
|
+
## Related
|
|
106
|
+
|
|
107
|
+
- [send-outlook-mail-failures.md](./send-outlook-mail-failures.md) — the outbound Outlook COM activity; shares the COM-not-running / not-registered / bitness / privilege surface (branch 3 here) and the SMTP/Graph fallback guidance.
|
|
108
|
+
- [o365-activities overview](../../o365-activities/overview.md) — modern Microsoft Graph / OAuth mail reads (`Get Newest Email`, folder-scoped reads); the preferred path for unattended mail and the destination when migrating off the COM read activity.
|
|
109
|
+
- [mail-activities overview](../overview.md) — the package's connection model (Outlook desktop COM vs SMTP/protocol).
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: medium
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Move Outlook Mail Message Failures
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
A `UiPath.Mail.Outlook.Activities` `Move Outlook Mail Message` (`MoveOutlookMessage`) activity moves a `MailMessage` into a destination `MailFolder` of the **locally installed Outlook desktop application** through COM interop — it does not call a mail API. It runs under the Outlook profile of the Windows user the Robot runs as, resolves the destination folder (and optional `Account`), and moves the supplied message item. Failures cluster around the **COM session** (Outlook running/synced, especially unattended), the **destination folder path / `Account`**, a **modern-vs-classic type mismatch** after a package update, and the **New Outlook** client removing the desktop COM API the activity depends on.
|
|
10
|
+
|
|
11
|
+
Move shares the desktop-COM surface with the other Outlook activities — Outlook-not-running / session-drop is diagnosed like [get-outlook-mail-failures.md](./get-outlook-mail-failures.md) branch 3 and [send-outlook-mail-failures.md](./send-outlook-mail-failures.md) branch 1, and the folder-resolution rules match [get-outlook-mail-failures.md](./get-outlook-mail-failures.md) branch 1. What is distinctive here is the **classic-vs-modern Move activity type mismatch** and the **New Outlook** regression. For unattended / server-side mail with no desktop Outlook, prefer the modern Graph **o365-activities** Move Email.
|
|
12
|
+
|
|
13
|
+
What this looks like — Move Outlook Mail Message faults surface as one of these signatures:
|
|
14
|
+
|
|
15
|
+
- `The operation failed.` or `The specified folder does not exist` that is **intermittent**, or fails 100% on **unattended/Production** robots — branch 1.
|
|
16
|
+
- `The folder does not exist` that fails **immediately, every run**, in attended testing — branch 2.
|
|
17
|
+
- `Cannot convert type 'String' to 'IResource'` / `... to 'Office365Message'` (a design-time/binding/cast error) after a dependency update — branch 3.
|
|
18
|
+
- The automation **broke completely after a system/Office update**, with COM-bind / "Outlook is not running" style errors on a machine that now runs **New Outlook** — branch 4.
|
|
19
|
+
|
|
20
|
+
What can cause it (cause-branches — pick the right one from evidence):
|
|
21
|
+
|
|
22
|
+
1. **COM session loss (Outlook not running / not synced).** The Robot's COM session cannot reach a live local Outlook instance, so the folder tree cannot be indexed. Causes: Outlook is closed, asleep, or running on a **detached unattended Windows profile**; the connection drops intermittently mid-run. Hallmark: the same workflow that works attended fails on unattended/Production, or fails only on *some* runs.
|
|
23
|
+
2. **Destination folder path / `Account` mismatch.** The `MailFolder` string does not resolve. Causes: a **nested** destination addressed by a bare leaf name (`Archive`) instead of a path (`Inbox\Archive`); a **shared / secondary mailbox** destination without the mailbox's address in the `Account` field. Hallmark: fails immediately and deterministically, every run, even attended.
|
|
24
|
+
3. **Modern-vs-classic type mismatch.** After updating dependencies, the workflow mixes the **modern** Move Email activity (newer `UiPath.Mail.Activities` / `UiPath.MicrosoftOffice365.Activities`) — which expects an object reference (`IResource` / `Office365Message`) for the message and/or folder — with a **string** message-ID or folder-path variable wired in from the classic design. Surfaces as a `Cannot convert type 'String' to 'IResource' / 'Office365Message'` binding/cast error.
|
|
25
|
+
4. **New Outlook (desktop COM API removed).** The host updated to Microsoft's **New Outlook** (the web-hybrid client), which **removes the Outlook Desktop COM API** that all `UiPath.Mail.Outlook.Activities` rely on. The classic activity can no longer bind to an Outlook COM server. Hallmark: the automation worked, then broke **completely** right after a Windows/Office update flipped the machine to New Outlook.
|
|
26
|
+
|
|
27
|
+
What to look for:
|
|
28
|
+
|
|
29
|
+
- **The exception text and timing** — intermittent / unattended-only "operation failed" / "folder does not exist" → branch 1; immediate-and-deterministic "folder does not exist" → branch 2; a `String`→`IResource`/`Office365Message` cast/binding error → branch 3; "broke completely after an update" with COM-bind failures → branch 4.
|
|
30
|
+
- **Session type and Outlook state** — attended vs unattended/RDP, and whether a desktop Outlook is running/synced for the Robot's user. Load-bearing for branches 1 and 4.
|
|
31
|
+
- **The destination `MailFolder` + `Account`** (literal values from `Main.xaml`) — nested path? shared mailbox? Load-bearing for branch 2.
|
|
32
|
+
- **Which Move activity and how its inputs are typed** — classic `Move Outlook Mail Message` (`MoveOutlookMessage`, string/`MailMessage` inputs) vs the modern Move Email (`IResource`/`Office365Message`), and whether a `String` is wired where a resource object is expected. Load-bearing for branch 3.
|
|
33
|
+
- **Outlook client variant on the host** — Classic Outlook vs New Outlook, and whether a recent update flipped it. Load-bearing for branch 4 (only verifiable on the host).
|
|
34
|
+
|
|
35
|
+
## Investigation
|
|
36
|
+
|
|
37
|
+
Go in this order — cheaper checks first.
|
|
38
|
+
|
|
39
|
+
1. **Capture the exact error, activity, host, and timing.** From `uip or jobs get <job-key> --output json` → `Info`: the exception class and message. From workflow source (`.xaml`): the Move activity — classic `MoveOutlookMessage` vs the modern Move Email, the destination `MailFolder` / `Account`, and how the message and folder inputs are typed (string vs resource). From the job: the Robot **host**, whether the run is **attended or unattended**, and whether failures are **intermittent or 100%**.
|
|
40
|
+
|
|
41
|
+
2. **Branch the diagnostic on the signature + timing.**
|
|
42
|
+
- Intermittent, or unattended-only, "operation failed" / "folder does not exist" → branch 1; go to step 3.
|
|
43
|
+
- Immediate, deterministic "folder does not exist" → branch 2; go to step 4.
|
|
44
|
+
- `Cannot convert type 'String' to 'IResource' / 'Office365Message'` → branch 3; go to step 5.
|
|
45
|
+
- "Broke completely after an update", COM-bind failure → branch 4; go to step 6.
|
|
46
|
+
|
|
47
|
+
3. **Confirm branch 1 (COM session loss).** Confirm the run is unattended/RDP and whether a desktop Outlook is running and synced for the Robot's Windows user. Intermittency, or works-attended-fails-unattended, with no folder-path problem, confirms the branch. (Install/registration/bitness is the same surface as [send-outlook-mail-failures.md](./send-outlook-mail-failures.md) branch 1.)
|
|
48
|
+
|
|
49
|
+
4. **Confirm branch 2 (folder path / `Account`).** Read the literal destination `MailFolder`. A bare nested-folder leaf name (`Archive` instead of `Inbox\Archive`), or a shared-mailbox destination with an empty `Account`, confirms the branch — especially when it fails deterministically on every run, attended included.
|
|
50
|
+
|
|
51
|
+
5. **Confirm branch 3 (type mismatch).** Identify which Move activity is used and how its message/folder inputs are bound. A `String` variable wired into a modern activity input that expects an `IResource` / `Office365Message` object — surfacing as the cast/convert error after a recent dependency update — confirms the branch.
|
|
52
|
+
|
|
53
|
+
6. **Confirm branch 4 (New Outlook).** Determine the Outlook client variant on the host and whether a recent update flipped it to **New Outlook**. A complete, post-update break with COM-bind failures on a host now running New Outlook confirms the branch (the desktop COM API the activity needs is gone).
|
|
54
|
+
|
|
55
|
+
The root cause must name **which of the four surfaces** the failure maps to, with the specific evidence: the exception text and its timing/determinism, the session type and Outlook state, the destination `MailFolder`/`Account`, the activity variant and input typing, and the Outlook client variant. A generic "move failed" is not a confirmed finding.
|
|
56
|
+
|
|
57
|
+
## Resolution
|
|
58
|
+
|
|
59
|
+
Map the branch identified in Investigation to the fix:
|
|
60
|
+
|
|
61
|
+
- **Branch 1 — COM session loss:**
|
|
62
|
+
- Keep a live Outlook instance available to the Robot: leave a foreground Classic Outlook window open on the target machine during the run, and add Outlook to the **Startup apps** for the Robot's Windows user so it launches and syncs on logon.
|
|
63
|
+
- Wrap the move in a **Retry Scope** with a short (2–3 s) delay — intermittent COM sync losses often clear on the second attempt.
|
|
64
|
+
- For unattended/Production reliability, prefer the modern Graph **o365-activities** Move Email (no desktop dependency).
|
|
65
|
+
|
|
66
|
+
- **Branch 2 — Folder path / `Account`:**
|
|
67
|
+
- Address a nested destination by its path, not a bare leaf name: `Inbox\Archive` (or `Inbox/Archive`), not `Archive`.
|
|
68
|
+
- For a shared / secondary mailbox destination, set the mailbox's full email address in the activity's **`Account`** field.
|
|
69
|
+
|
|
70
|
+
- **Branch 3 — Modern-vs-classic type mismatch:**
|
|
71
|
+
- In a **modern** Move Email activity, do not hardcode a string message-ID / folder path. Use the **`+` (plus) button** next to the folder/message property to map the target via the directory picker so it resolves to the expected `IResource` / `Office365Message` object.
|
|
72
|
+
- Or, if your variables are explicit `String` / `MailMessage` types, use the **classic** `Move Outlook Mail Message` (`MoveOutlookMessage`) activity, which accepts them directly. Do not mix classic string inputs into modern resource-typed properties.
|
|
73
|
+
|
|
74
|
+
- **Branch 4 — New Outlook:**
|
|
75
|
+
- Toggle the host's Outlook back to **Classic Outlook** (the switch in the upper-right corner of the Outlook window) so the desktop COM API the activity needs is present again.
|
|
76
|
+
- If the machine must stay on **New Outlook**, stop using the `UiPath.Mail.Outlook.Activities` desktop activities entirely and migrate the workflow to the modern Microsoft 365 Integration activities (**`UiPath.MicrosoftOffice365.Activities`**, covered by [o365-activities](../../o365-activities/overview.md)), which use the Graph API over a web connection rather than local desktop COM.
|
|
77
|
+
|
|
78
|
+
## Anti-patterns (what NOT to do)
|
|
79
|
+
|
|
80
|
+
- **"Add a longer Delay / more Retry Scope passes until it works."** Retry helps a genuinely intermittent COM sync loss (branch 1). It will never fix a wrong folder path (branch 2), a type mismatch (branch 3), or a host on New Outlook (branch 4) — it just burns time and masks the real cause.
|
|
81
|
+
- **"Wrap Move in a Try Catch and continue."** Swallowing the failure leaves the message unmoved while downstream logic assumes it was filed — a silent data-handling bug. Use Try-Catch only with a real recovery path (retry the transient COM state, route the item, or re-throw).
|
|
82
|
+
- **"Force-fit a string into the modern Move Email property."** Hardcoding a string where an `IResource` / `Office365Message` is expected is exactly branch 3 — map the resource with the `+` picker, or use the classic activity.
|
|
83
|
+
- **"Reinstall Office / downgrade the package to fix the post-update break."** If the host flipped to New Outlook (branch 4), neither helps — toggle back to Classic Outlook or move to the Graph activities.
|
|
84
|
+
|
|
85
|
+
## Prevention (cross-branch)
|
|
86
|
+
|
|
87
|
+
- For unattended / server-side mail moves, default to the modern Graph **o365-activities** Move Email; reserve the classic desktop Move for attended automations with a live, synced Outlook.
|
|
88
|
+
- Provision Robot hosts with a running, logged-in Classic Outlook (Startup apps) and pin the machine to **Classic Outlook** so a New-Outlook flip cannot silently break the COM activities.
|
|
89
|
+
- Address destination folders by path (`Inbox\Archive`) and set `Account` for shared-mailbox destinations at design time.
|
|
90
|
+
- Keep classic and modern Move activities separate — match input types (string/`MailMessage` for classic; `IResource`/`Office365Message` for modern) and re-validate bindings after any `UiPath.Mail.Activities` upgrade.
|
|
91
|
+
|
|
92
|
+
## Related
|
|
93
|
+
|
|
94
|
+
- [get-outlook-mail-failures.md](./get-outlook-mail-failures.md) — the inbound read activity; shares the COM-session (branch 3 there) and folder-resolution (branch 1 there) surfaces.
|
|
95
|
+
- [send-outlook-mail-failures.md](./send-outlook-mail-failures.md) — the outbound activity; shares the COM-install / not-running / privilege surface (branch 1 there).
|
|
96
|
+
- [o365-activities overview](../../o365-activities/overview.md) — modern Microsoft Graph / OAuth mail (Move Email and folder-scoped ops); the required path when the host runs New Outlook and the preferred path for unattended moves.
|
|
97
|
+
- [mail-activities overview](../overview.md) — the package's connection model (Outlook desktop COM vs SMTP/protocol).
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: medium
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Send Outlook Mail Message Failures
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
A `UiPath.Mail.Outlook.Activities` `Send Outlook Mail Message` (`SendOutlookMail`) activity does **not** call a mail API — it drives the locally installed **Outlook desktop application** through COM interop. It attaches to (or launches) `OUTLOOK.EXE` under the Windows user the Robot runs as, composes the message through the Outlook Object Model using that user's mail profile, and returns once Outlook accepts the item. Failures therefore originate at one of three surfaces: the **COM layer** (Outlook installed/registered, process bitness, orphaned process), the **session/UI** (a prompt or Work Offline state blocking the call), or the **inputs** (uninitialized `To`/`Subject`/`Body`, or a bad attachment path).
|
|
10
|
+
|
|
11
|
+
Because the call goes through a desktop application, the Outlook COM activities are fragile on **unattended** Robots, where there is no interactive desktop to dismiss a prompt and the profile may not be configured for the Robot's Windows user. When Outlook is not a hard requirement, the **Send SMTP Mail Message** activity (`UiPath.Mail.SMTP.Activities`) or the modern Graph **o365-activities** are the more reliable path (see Resolution → alternative).
|
|
12
|
+
|
|
13
|
+
What this looks like — Send Outlook Mail faults surface as one of these signatures:
|
|
14
|
+
|
|
15
|
+
- `System.InvalidCastException: Unable to cast COM object of type '...' to interface type '...'` or `System.Runtime.InteropServices.COMException: Library not registered. (REGDB_E_CLASSNOTREG / TYPE_E_LIBNOTREGISTERED)` — branch 1.
|
|
16
|
+
- The activity blocks and then fails with a **timeout** (`TimeoutMS` elapsed), or the job hangs with no exception — branch 2.
|
|
17
|
+
- `System.NullReferenceException: Object reference not set to an instance of an object` raised at the activity — branch 3.
|
|
18
|
+
|
|
19
|
+
What can cause it (cause-branches — pick the right one from evidence):
|
|
20
|
+
|
|
21
|
+
1. **COM cast / library not registered.** The Outlook COM server cannot be bound. Causes: Outlook is **not installed** on the Robot host (the activity needs the desktop client, not just an account); a **bitness mismatch** between the Robot/process and the installed Outlook (a 64-bit process against a 32-bit Outlook, or vice versa); a **corrupted Office registry / type library** (common after a botched Office update); or an **orphaned `OUTLOOK.EXE`** from a prior run holding the COM server in a bad state.
|
|
22
|
+
2. **Activity times out or hangs.** The COM call is blocked waiting on something the Robot cannot satisfy. Causes: the Outlook **security prompt** ("A program is trying to send an email message on your behalf…", the Outlook Object Model Guard) is foregrounded but invisible/unanswered — fired when antivirus is out of date / not registered with Windows Security Center or programmatic-access policy is not set; Outlook is in **Work Offline** mode so the send never completes; or a slow first **profile load** exceeds the activity's `TimeoutMS` (default `30000` = 30 s).
|
|
23
|
+
3. **Uninitialized input.** A variable bound to `To`, `Subject`, or `Body` is `Nothing`/null (an upstream step that should have populated it was skipped or scoped wrong), or an attachment path in the `Attachments`/`Files` collection is empty/null. The activity dereferences it and throws `Object reference not set to an instance of an object`.
|
|
24
|
+
|
|
25
|
+
What to look for:
|
|
26
|
+
|
|
27
|
+
- **The exception class and message** — first signal. `Unable to cast COM object` / `Library not registered` → branch 1; a timeout / hang with no inner exception → branch 2; `NullReferenceException` at the activity → branch 3.
|
|
28
|
+
- **Outlook install + bitness on the Robot host** — whether the **desktop** Outlook is installed on the machine that ran the job (not the dev machine), and its bitness vs the Robot process (`File > Account > About Outlook` shows 32-/64-bit). Load-bearing for branch 1.
|
|
29
|
+
- **Session type (attended vs unattended) and Outlook state** — whether a security prompt or Work Offline state could be blocking the send, and whether the Robot's Windows user even has a configured Outlook profile. Load-bearing for branch 2.
|
|
30
|
+
- **The `To`/`Subject`/`Body` and attachment inputs** — literal vs expression-bound; trace each variable's producer and scope, and whether attachment paths resolve. Load-bearing for branch 3.
|
|
31
|
+
- **`TimeoutMS`** on the activity (milliseconds; default `30000`) — relevant to branch 2.
|
|
32
|
+
|
|
33
|
+
## Investigation
|
|
34
|
+
|
|
35
|
+
Go in this order — cheaper checks first.
|
|
36
|
+
|
|
37
|
+
1. **Capture the exact error, activity, and host.** From `uip or jobs get <job-key> --output json` → `Info`: the exception class and full message (including the inner exception). From workflow source (`.xaml`): the `Send Outlook Mail Message` node — literal vs expression-bound `To`/`Subject`/`Body`, the `Attachments` collection, the `Account`/profile, and `TimeoutMS`. From the job: the Robot **host** and whether the run was **attended or unattended**.
|
|
38
|
+
|
|
39
|
+
2. **Branch the diagnostic on the signature.**
|
|
40
|
+
- `Unable to cast COM object` / `Library not registered` (`REGDB_E_CLASSNOTREG` / `TYPE_E_LIBNOTREGISTERED`) → branch 1; go to step 3.
|
|
41
|
+
- Timeout / hang with no clean inner exception → branch 2; go to step 4.
|
|
42
|
+
- `NullReferenceException` at the activity → branch 3; go to step 5.
|
|
43
|
+
|
|
44
|
+
3. **Confirm branch 1 (COM cast / library not registered).** Confirm the desktop Outlook is installed on the **Robot host** (not only the developer machine) and note its **bitness** against the Robot process. A 64-bit process with a 32-bit-only Outlook (or a corrupted type library after an Office update) produces the cast / not-registered error. Check for a stray `OUTLOOK.EXE` left running with no window from a prior job.
|
|
45
|
+
|
|
46
|
+
4. **Confirm branch 2 (timeout / hang).** Determine whether the run is **unattended** (no interactive desktop). Check whether the Outlook **security prompt** could be firing (antivirus state / programmatic-access policy), whether Outlook is in **Work Offline** mode, and whether the Robot's Windows user has a configured profile. Read `TimeoutMS` and compare against a realistic profile-load + send time. A hang on an unattended Robot with no visible Outlook is the prototypical case.
|
|
47
|
+
|
|
48
|
+
5. **Confirm branch 3 (uninitialized input).** In the workflow source, trace the variables bound to `To`, `Subject`, `Body`, and each attachment path back to their producers. A variable left `Nothing` (upstream step skipped, or declared in an inner scope) or an empty attachment path confirms the branch. Reproduce by hardcoding literal values into the activity fields — if the error disappears, an input was null.
|
|
49
|
+
|
|
50
|
+
The root cause must name **which of the three surfaces** the failure maps to, with the specific evidence: the exception text, the Outlook install/bitness on the Robot host, the session type and Outlook state, and the input values. A generic "Outlook failed" is not a confirmed finding.
|
|
51
|
+
|
|
52
|
+
## Resolution
|
|
53
|
+
|
|
54
|
+
Map the branch identified in Investigation to the fix:
|
|
55
|
+
|
|
56
|
+
- **Branch 1 — COM cast / library not registered:**
|
|
57
|
+
- Ensure the **desktop Outlook is installed** on every Robot host that runs the process (the activity cannot work against a webmail-only account).
|
|
58
|
+
- Match **bitness** — the installed Outlook must match the Robot process architecture. Re-install the matching-bitness Office, or set the project compatibility so the process matches the installed Outlook.
|
|
59
|
+
- Repair the Office installation: close **both** UiPath (Studio/Robot) and Outlook, run a **Quick Repair** of Microsoft Office (`Windows Settings > Installed apps > Microsoft Office > Modify > Quick Repair`), then restart the host.
|
|
60
|
+
- Clear any orphaned `OUTLOOK.EXE` before the run (Task Manager / `Stop-Process -Name OUTLOOK -Force` as the Robot's Windows user) and fix whatever leaves it orphaned.
|
|
61
|
+
|
|
62
|
+
- **Branch 2 — Activity times out or hangs:**
|
|
63
|
+
- Make sure Outlook is **running, signed in, and Online** (turn off `Send/Receive > Work Offline`) under the Robot's Windows user before the activity runs.
|
|
64
|
+
- Resolve the **security prompt** at its source rather than waiting on it: keep antivirus up to date and registered with Windows Security Center (this is what normally suppresses the Object Model Guard prompt), or set the Outlook programmatic-access / Trust Center policy via Group Policy for the Robot's user. Do **not** rely on a human dismissing the prompt on an unattended Robot.
|
|
65
|
+
- If the send is **legitimately** slow (first profile load), raise `TimeoutMS` above the worst observed duration (it is in **milliseconds**: `60000` = 60 s). Raising the timeout does **not** fix a blocking security prompt or Work Offline state — only branch-2 *slowness*.
|
|
66
|
+
|
|
67
|
+
- **Branch 3 — Uninitialized input:**
|
|
68
|
+
- Initialize every variable bound to `To`, `Subject`, and `Body` before the activity, and guard against null/empty (a null `To` is the most common). Validate it by hardcoding literal values into the fields first.
|
|
69
|
+
- Ensure each attachment path in the `Attachments`/`Files` collection is non-empty and resolves to an existing file at runtime; drop the attachment input entirely when there is nothing to attach rather than passing an empty string.
|
|
70
|
+
|
|
71
|
+
### Alternative — bypass Outlook with SMTP or modern Graph
|
|
72
|
+
|
|
73
|
+
If the COM/interop errors persist (or the process runs **unattended**), avoid the Outlook desktop dependency entirely:
|
|
74
|
+
|
|
75
|
+
- **Send SMTP Mail Message** (`UiPath.Mail.SMTP.Activities`) — sends straight to your mail server; no Outlook install or profile needed. Configure the SMTP host (e.g. `smtp.office365.com`), port (`587` with STARTTLS), and credentials.
|
|
76
|
+
- **Modern Graph** — the **o365-activities** (`UiPath.MicrosoftOffice365.Activities`) send mail via OAuth-authenticated Microsoft Graph, with no desktop client. Prefer these for server-side / unattended automation.
|
|
77
|
+
|
|
78
|
+
## Anti-patterns (what NOT to do)
|
|
79
|
+
|
|
80
|
+
- **"Just raise `TimeoutMS` until it works."** A larger timeout only helps a *legitimately slow* send (branch 2). For a blocking security prompt or Work Offline state it just makes the Robot hang longer before failing — fix the prompt/offline state instead.
|
|
81
|
+
- **"Wrap Send Outlook Mail in a Try Catch and continue."** Swallowing the exception turns a non-sent email into a silent success; downstream logic assumes the mail went out. Use Try-Catch only with a real recovery path (retry a transient COM state, fall back to SMTP, mark the item Failed, or re-throw).
|
|
82
|
+
- **"Disable the Outlook security prompt by lowering Programmatic Access to 'Never warn me'."** Doing this by hand on each host is brittle and a security regression; the supported fix is up-to-date antivirus registered with Windows Security Center, or a Group Policy for the Robot's user.
|
|
83
|
+
- **"Use Send Outlook Mail on an unattended server with no Outlook."** The activity requires the desktop client and a profile; on headless/unattended hosts use **Send SMTP Mail Message** or the modern Graph **o365-activities** instead.
|
|
84
|
+
|
|
85
|
+
## Prevention (cross-branch)
|
|
86
|
+
|
|
87
|
+
- For unattended / server-side mail, default to **Send SMTP Mail Message** or the modern Graph **o365-activities** — reserve the Outlook COM activities for attended desktop automations that genuinely need the user's Outlook.
|
|
88
|
+
- Provision every Robot host that uses the Outlook activities with a **matching-bitness desktop Outlook** and a configured profile for the Robot's Windows user; verify at provisioning, not at first failure.
|
|
89
|
+
- Keep antivirus current and registered with Windows Security Center (or set the programmatic-access Group Policy) so the Object Model Guard prompt never fires unattended.
|
|
90
|
+
- Initialize and validate `To`/`Subject`/`Body` and attachment paths before the activity; never pass an empty attachment path.
|
|
91
|
+
|
|
92
|
+
## Related
|
|
93
|
+
|
|
94
|
+
- [o365-activities overview](../../o365-activities/overview.md) — modern Microsoft Graph / OAuth mail (no desktop Outlook); the preferred path for unattended mail and the destination when migrating off the COM activities.
|
|
95
|
+
- [mail-activities overview](../overview.md) — the package's connection model (Outlook desktop COM vs SMTP/protocol) and how to choose between them.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Mail Activities Playbooks
|
|
2
|
+
|
|
3
|
+
| Issue | Confidence | Description | Playbook |
|
|
4
|
+
|-------|:---:|-------------|----------|
|
|
5
|
+
| Send Outlook Mail Message Failures | Medium | `Send Outlook Mail Message` (`SendOutlookMail`, `UiPath.Mail.Outlook.Activities`) fails across three surfaces: COM cast / library-not-registered (`Unable to cast COM object` / `Library not registered` — Outlook not installed/registered, process-vs-Outlook bitness mismatch, corrupted Office registry, or orphaned `OUTLOOK.EXE`); activity times out or hangs (hidden "a program is trying to send an email" security prompt, Work Offline mode, or slow profile load); and `Object reference not set to an instance of an object` from an uninitialized `To`/`Subject`/`Body` or empty attachment path. Includes the `Send SMTP Mail Message` / modern Graph fallback for unattended runs. | [send-outlook-mail-failures.md](./playbooks/send-outlook-mail-failures.md) |
|
|
6
|
+
| Get Outlook Mail Messages Failures | Medium | `Get Outlook Mail Messages` (`GetOutlookMailMessages`, `UiPath.Mail.Outlook.Activities`) fails across five surfaces: folder not resolved (`The specified folder does not exist` — nested-path backslash syntax, shared mailbox needing the `Account` field, or a localized folder name); timeout on a large folder (`The operation has timed out` — raise `TimeoutMS`, lower `Top`, enable `OnlyUnreadMessages`); Outlook not running / COM session or privilege mismatch (`The Outlook application is not running` / freeze on unattended RDP, or a UiPath-vs-Outlook elevation mismatch); malformed DASL/Jet `Filter` (unquoted value yields an error or zero results); and Cached Exchange Mode desync (no error, but recent/old mail visible in the client is missing). Shares the COM surface with Send Outlook Mail; cross-references the modern Graph o365 reads for unattended runs. | [get-outlook-mail-failures.md](./playbooks/get-outlook-mail-failures.md) |
|
|
7
|
+
| Move Outlook Mail Message Failures | Medium | `Move Outlook Mail Message` (`MoveOutlookMessage`, `UiPath.Mail.Outlook.Activities`) fails across four surfaces: COM session loss (`The operation failed` / `The specified folder does not exist` — intermittent or 100% on unattended robots when Outlook is closed/asleep/detached; fix with a live foreground Outlook, Startup apps, and a Retry Scope); destination folder path / `Account` mismatch (deterministic `The folder does not exist` — use `Inbox\Archive` not `Archive`, set `Account` for shared mailboxes); modern-vs-classic type mismatch (`Cannot convert type 'String' to 'IResource' / 'Office365Message'` after a dependency update — map the resource with the `+` picker, or use the classic activity with string/`MailMessage` inputs); and the New Outlook regression (a system update flips the host to New Outlook, which removes the Desktop COM API — toggle back to Classic Outlook or migrate to the Graph o365 Move Email). | [move-outlook-mail-failures.md](./playbooks/move-outlook-mail-failures.md) |
|
|
8
|
+
| Delete Outlook Mail Message Failures | Medium | `Delete Outlook Mail Message` (`DeleteOutlookMailMessage`, `UiPath.Mail.Outlook.Activities`) fails across five surfaces: stale message reference (`The operation failed. An object could not be found.` — the item was moved/deleted between Get and Delete; fetch-then-delete promptly + Try Catch); collection modified in loop (`Collection was modified; enumeration operation may not execute.` — deleting inside a `For Each` over the live message list; iterate a `.ToList()` copy / backwards, or Move-then-delete); New Outlook regression (removes the Desktop COM API — revert to Classic or migrate to Graph); COM session blocked / privilege (`The operation has timed out` / freeze from a modal programmatic-access dialog or a UiPath-vs-Outlook elevation mismatch; match privilege, fix Trust Center); and mailbox permission / access denied (Robot account lacks Full Access on a shared mailbox; set `Account` and grant Full Access via Exchange). | [delete-outlook-mail-failures.md](./playbooks/delete-outlook-mail-failures.md) |
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
Before using any fetched data, verify it matches the user's reported problem:
|
|
6
6
|
|
|
7
7
|
- **Activity** — the faulted activity's namespace and class match the reported failure (e.g., `UiPath.MicrosoftOffice365.Activities.Mail.MoveEmailConnections`). Modern connections activities and legacy activities (`MoveMail`, `DownloadFile`, `CreateFolder`, `UploadFile`, `CreateWorkbook`, `AddSheet`) sometimes share display names but run different code paths — treat them as different.
|
|
8
|
+
- **Display names are narrative, not evidence** — activity display names, process names, and workflow comments describe intent; they must never confirm or eliminate a hypothesis. Decide from status codes, error codes, logs, traces, and live probes. (Repro/test workflows in particular carry display names that assert a cause; weigh only the recorded behavior.)
|
|
9
|
+
- **Exception type routes the code path** — modern `*Connections` activities and triggers wrap every failure in `UiPath.MicrosoftOffice365.Office365Exception` with a friendly message; a **raw** `Microsoft.Graph.ServiceException`, `ArgumentNullException`, `NullReferenceException`, or `FileNotFoundException` therefore always means a **legacy** activity (no wrapper; raw ServiceException messages embed `Code: <graphErrorCode>` plus the same sentence the friendly mapping uses — match the sentence). A raw `UiPath.ConnectionClient.Contracts.ConnectionHttpException` means the failure happened at the Integration Service connection layer (trigger event/sample lookup or token fetch), not at Microsoft Graph; the wrapped form preserves its message verbatim.
|
|
8
10
|
- **Connection / Microsoft 365 account** — the Integration Service connection in evidence authenticates against the same Microsoft 365 user principal the user is asking about. Different connections = different mailboxes, different OneDrive scopes, different SharePoint sites = unrelated data.
|
|
9
11
|
- **Mailbox in scope** — for Mail activities, confirm the resolved mailbox is the one the user is asking about. The same connection can target the user's own mailbox, a shared mailbox, or a delegated mailbox via the activity argument; Outlook IDs are mailbox-scoped, so an item that resolves in one mailbox will not resolve in another.
|
|
10
12
|
- **Target resource** — the resource identifier in evidence matches the one the user reports: mail folder ID or path, message ID, OneDrive/SharePoint item ID or URL or drive-relative path, drive ID, SharePoint site URL plus document library, workbook file name, sheet name. Don't substitute a similarly-named resource.
|
|
@@ -17,6 +19,27 @@ If the data doesn't match: **discard it**. Do NOT use unrelated data as a proxy.
|
|
|
17
19
|
|
|
18
20
|
1. **Activity execution traces** — these activities emit per-call traces. Pull them when available — they expose the exact Microsoft Graph endpoint hit, request/response status, and timing. Trace evidence narrows whether the failure originated at connection resolution, OAuth token validation, the Graph call, or post-processing inside the activity.
|
|
19
21
|
|
|
22
|
+
## Cross-Cutting Error Classes
|
|
23
|
+
|
|
24
|
+
Many Microsoft Office 365 failures are **not specific to one activity** — they come from the shared authentication + Microsoft Graph layer and can surface from *any* Mail / Files / Excel activity. The user-visible text is keyed off the **Microsoft Graph error code, not the HTTP status**: some codes surface a fixed UiPath message, others surface the raw Graph message verbatim. So **match on the message text**, and when the class is cross-cutting, investigate the connection / permission / rate / configuration rather than over-focusing on the faulted activity's own arguments.
|
|
25
|
+
|
|
26
|
+
Route by message:
|
|
27
|
+
|
|
28
|
+
- Token / `AADSTS` / `not authenticated` / cancelled login / `No default connection` / `Automation Cloud cannot be reached` → [authentication-token-invalid](./playbooks/authentication-token-invalid.md) (401).
|
|
29
|
+
- `The caller doesn't have permission ...` / `Access restricted to the item's owner.` / raw `Insufficient privileges ...` → [insufficient-graph-scope](./playbooks/insufficient-graph-scope.md) (403). Note Graph may instead return **404** for unauthorized cross-mailbox/shared access — that path is the not-found playbooks.
|
|
30
|
+
- `Too many requests.` / `The app or user has been throttled.` / batched 429 → [request-throttled](./playbooks/request-throttled.md) (429).
|
|
31
|
+
- `The server is unable to process the current request.` / `Request time out.` / 500 / 504 / batched 5xx → [transient-service-error](./playbooks/transient-service-error.md).
|
|
32
|
+
- Faults **before any Graph call** (`Could not retrieve the selected asset`, `You must provide a value for ...`, `Please select an account.`, placement errors) → [application-scope-misconfigured](./playbooks/application-scope-misconfigured.md).
|
|
33
|
+
- Raw `ConnectionHttpException` (or `Office365Exception` with the identical IS-status message) from a trigger → [email-trigger-connection-event-failure](./playbooks/email-trigger-connection-event-failure.md).
|
|
34
|
+
- `The specified object was not found in the store.` / `Item ... doesn't belong to the targeted mailbox` / 404 on a message ID → [mail-message-not-found](./playbooks/mail-message-not-found.md).
|
|
35
|
+
- `Invalid Query. Please use OData format for filter queries. Press F1 for examples.` → [mail-invalid-odata-query](./playbooks/mail-invalid-odata-query.md).
|
|
36
|
+
- `File does not exist: <path>` / `ErrorInvalidRecipients` / `ErrorSendAsDenied` / `ErrorMessageSizeExceeded` on a send/forward/reply → [send-mail-rejected](./playbooks/send-mail-rejected.md).
|
|
37
|
+
- `Value cannot be null. (Parameter 'DriveItem')` from legacy Copy Item → [copy-item-argument-null](./playbooks/copy-item-argument-null.md).
|
|
38
|
+
- Raw `NullReferenceException` from a legacy Mail activity → [legacy-mail-null-reference](./playbooks/legacy-mail-null-reference.md).
|
|
39
|
+
- `Folder path must contain at least one segment.` / segment whitespace / `'<segment>' is a file, not a folder.` / `Value cannot be null. (Parameter 'Folder name'/'Folder path'/'Parent folder')` → [create-folder-invalid-path](./playbooks/create-folder-invalid-path.md).
|
|
40
|
+
- `Folders cannot be downloaded with this activity ...` / `Cannot convert the item into PDF format ...` / `Local File Path should point to a folder or directly to a .pdf file.` → [download-file-conversion-or-destination](./playbooks/download-file-conversion-or-destination.md).
|
|
41
|
+
- `The user has reached their quota limit.` / `Max file size exceeded.` / `Upload session failed/incomplete/not found.` → [upload-file-quota-or-size](./playbooks/upload-file-quota-or-size.md) (quota is storage, **not** 429 throttling).
|
|
42
|
+
|
|
20
43
|
## Testing Prerequisites
|
|
21
44
|
|
|
22
45
|
When testing hypotheses for Microsoft Office 365 Activities issues, gather and verify these before drawing conclusions:
|
|
@@ -39,12 +39,21 @@ Failures can originate at any of those layers — connection resolution (Integra
|
|
|
39
39
|
- **Filter returns no matching email** — Mailbox contains zero messages matching the configured filter at the moment the activity runs. `Get Newest Email` throws `Office365Exception: No email matching the filter criteria, received in the last 1 hour has been found...` synchronously.
|
|
40
40
|
- **Mail folder not found** — Mail activity (`MoveEmailConnections`, `GetNewestEmail`, `GetEmailListConnections`, `ForEachEmailConnections`, `WaitForEmailReceived`, `NewEmailReceived` trigger, legacy `MoveMail`) cannot resolve the configured `MailFolder`. Surfaces as one of: `Office365Exception: The resource could not be found.`, `Folder named '<name>' could not be found on this account.` , or `Cannot find item configured with connection <connection> at path <folder>.`.
|
|
41
41
|
- **Local-filesystem name conflict on download** — `DownloadEmailConnections` or `DownloadEmailAttachments` throws `Office365Exception: Multiple items with the name <name> found in the specified folder.` because the **local** destination folder already contains a file with that name and `ConflictResolution = Fail`, or because two attachments on the same email resolve to the same local filename. Conflict is on the local filesystem, not in OneDrive/SharePoint.
|
|
42
|
+
- **Message not found** — message-by-ID activity (forward, reply, mark, delete, archive, download, get-by-ID) cannot resolve the message: deleted/moved, or the mailbox-scoped ID was used against a different mailbox. Surfaces as `The resource could not be found.`, raw `ErrorItemNotFound`, or `ErrorInvalidMailboxItemId`.
|
|
43
|
+
- **Invalid OData filter query** — `Invalid Query. Please use OData format for filter queries. Press F1 for examples.` from `GetMail` / `GetNewestEmail` / list-and-iterate reads with a malformed `$filter`.
|
|
44
|
+
- **Send rejected** — invalid recipient, shared-mailbox send without Exchange Send As rights, message size exceeded (raw Graph wording), or `File does not exist: <path>` for a missing attachment.
|
|
45
|
+
- **Trigger connection event failure** — `NewEmailReceived` / `EmailSent` faults at the Integration Service connection layer (`ConnectionHttpException`, raw or wrapped) while fetching the event email, debug sample, or token.
|
|
46
|
+
- **Raw NullReferenceException from a legacy Mail activity** — null `Message` input or null recipient-array element dereferenced before the Graph call; raw NRE type always indicates a legacy activity.
|
|
42
47
|
|
|
43
48
|
### Files (OneDrive / SharePoint)
|
|
44
49
|
|
|
45
50
|
- **404 — file or folder not found** — Files activity fails to resolve the configured ID, URL, path, or browse selection because the Drive item was deleted, moved out of scope, or is not accessible to the connection. Surfaces as `Office365Exception: The resource could not be found.` or as the wrapping form `Cannot find item configured with connection <connection> at path <path>.`
|
|
46
51
|
- **Item name already exists** — Files write activity (`CreateFolderConnections`, `CopyItemConnections`, `MoveItemConnections`, `RenameItemConnections`, `UploadFilesConnections`) throws `Office365Exception: The specified item name already exists.` when the destination already contains an item with the target name and `ConflictBehavior = Fail`. Affects legacy activities equivalents as well (`CreateFolder`, `UploadFile`).
|
|
47
52
|
- **Local-filesystem name conflict on download** — `DownloadFileConnections` throws `Office365Exception: Multiple items with the name <name> found in the specified folder.` when the **local** destination folder already contains a file with that name and `ConflictResolution = Fail`. Conflict is on the local filesystem, not in OneDrive/SharePoint.
|
|
53
|
+
- **Create Folder invalid name/path** — `CreateFolderConnections` rejects its own input: null name/path/parent, empty or whitespace-padded path segments, or an intermediate path segment that exists as a file.
|
|
54
|
+
- **Download conversion or destination error** — folder bound where a file is required, unsupported PDF-conversion source extension, non-`.pdf` export destination, or unresolvable shared-item parent drive.
|
|
55
|
+
- **Upload quota / size / session failure** — target storage full (`The user has reached their quota limit.`), file over the per-file limit, or a chunked upload session broken mid-transfer.
|
|
56
|
+
- **Null `DriveItem` input on legacy Copy Item** — raw `ArgumentNullException: Value cannot be null. (Parameter 'DriveItem')` when an upstream search matched nothing.
|
|
48
57
|
|
|
49
58
|
### Excel
|
|
50
59
|
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: medium
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# O365 — Application Scope / connection misconfiguration (before any Graph call)
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
What this looks like — the failure happens **before any Microsoft Graph call**, from the Microsoft 365 Application Scope's own configuration (no HTTP status / Graph error code). **Where** it shows up depends on the fault:
|
|
10
|
+
|
|
11
|
+
**As a faulted Orchestrator job (runtime):**
|
|
12
|
+
- `Could not retrieve the selected asset: '<asset>'` — the scope reads its connection from an Orchestrator asset that can't be retrieved (the inner cause can be a missing / forbidden asset, or an empty asset id).
|
|
13
|
+
- A bare `ArgumentNullException` naming a credential field (e.g. `ApplicationId`) — a required credential resolved to null at runtime. (The friendly "You must provide a value …" wording below is design-time only.)
|
|
14
|
+
|
|
15
|
+
**As Studio design-time validation / test-connection errors (not a job fault):**
|
|
16
|
+
- `You must provide a literal value for <field> in order to use design time services` — a required field is bound to an expression the design-time service can't read (Classic design experience).
|
|
17
|
+
- `The authentication parameters could not be read` — the connection object is null/empty.
|
|
18
|
+
- `You must provide a value for <field>` or `You must provide a value for at least one of the following properties: <Application Secret, Secure Application Secret>` / `<Password, Secure Password>` — a required credential field for the chosen authentication type is missing.
|
|
19
|
+
- `Please select an account.` — Interactive Token auth with no account chosen.
|
|
20
|
+
- `Activity is only valid inside an Office 365 Scope` (Mail / Excel / SharePoint) **or** `Cannot be used outside of a MicrosoftOffice365 Application Scope or outside of a Use OneDrive/SharePoint activity` (Files/OneDrive) — the activity was placed outside any Application Scope.
|
|
21
|
+
|
|
22
|
+
What activities can produce this:
|
|
23
|
+
- The **Microsoft 365 Application Scope** (`Office365ApplicationScope`) itself, and every Mail / Files / Excel activity placed under it (the fault propagates to the child that runs first, or surfaces as a design-time validation error on the misplaced activity).
|
|
24
|
+
|
|
25
|
+
What can cause it:
|
|
26
|
+
- **Orchestrator asset can't be retrieved** — the configured connection asset has the wrong name/path, isn't present in the folder the robot runs in, the robot lacks permission to read it, or it isn't a valid connection asset.
|
|
27
|
+
- **Non-literal value on a design-time field** — a required scope field is bound to a variable/expression that can't be read at design time.
|
|
28
|
+
- **Null / incomplete credentials** — no connection is configured, or the credential fields required by the chosen authentication type (App ID + Tenant + Secret/Certificate; Username + Password) are missing. At design time this is the `You must provide a value …` / `The authentication parameters could not be read` validation; at runtime a missing Application ID surfaces instead as a bare `ArgumentNullException` naming the field.
|
|
29
|
+
- **No account selected** — Interactive Token auth without a chosen account.
|
|
30
|
+
- **Activity placed outside the scope** — a Mail/Files/Excel activity dropped on the canvas with no Microsoft 365 Application Scope (or, for OneDrive/SharePoint, no Use OneDrive/SharePoint activity) as a parent.
|
|
31
|
+
|
|
32
|
+
> **Different cause, do not apply this playbook:**
|
|
33
|
+
> - Any message carrying a Microsoft Graph result — `The caller doesn't have permission ...` (403), `The resource could not be found.` (404), `Too many requests.` (429), `The server is unable to process the current request.` (503), or a token/`AADSTS` authentication error. Those happen **after** the scope successfully authenticates and makes a Graph call — use **insufficient-graph-scope**, the not-found playbooks, **request-throttled**, **transient-service-error**, or **authentication-token-invalid** respectively.
|
|
34
|
+
|
|
35
|
+
## Investigation
|
|
36
|
+
|
|
37
|
+
1. Read the message to identify which configuration family it is (asset / non-literal field / null or incomplete credentials / no account / placement).
|
|
38
|
+
2. **Asset (`Could not retrieve the selected asset`):** confirm the asset exists in the folder the robot runs against and that the robot account can read it; check the asset name/path is correct.
|
|
39
|
+
3. **Credentials (`You must provide a value for ...` / `The authentication parameters could not be read`):** confirm every field required by the scope's authentication type is set with a literal value.
|
|
40
|
+
4. **Placement (`Activity is only valid inside an Office 365 Scope` / `Cannot be used outside ...`):** confirm the activity sits inside a Microsoft 365 Application Scope (or a Use OneDrive/SharePoint activity for OneDrive/SharePoint).
|
|
41
|
+
|
|
42
|
+
## Resolution
|
|
43
|
+
|
|
44
|
+
- **Asset:** correct the selected Orchestrator asset (right name/path), ensure it lives in the robot's folder, and grant the robot read access — or switch the scope to configure credentials directly.
|
|
45
|
+
- **Non-literal field:** provide a literal value for the field the message names, or configure the scope so the design-time service can read it.
|
|
46
|
+
- **Incomplete credentials:** supply the fields required for the chosen authentication type — Application ID + Tenant + (Secret or Certificate) for app-only, Username + Password for ROPC, or select an account for Interactive Token.
|
|
47
|
+
- **Placement:** move the activity inside a Microsoft 365 Application Scope (or a Use OneDrive/SharePoint activity).
|
|
48
|
+
|
|
49
|
+
This class is resolved entirely in Studio / Orchestrator configuration — there is no Graph response to handle. If the configuration is correct (asset resolves, credentials complete, activity correctly nested) and the scope still fails to build, escalate.
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: medium
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# O365 — Authentication / token invalid (401)
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
What this looks like — the job faults the moment an Office 365 activity (or the Microsoft 365 Application Scope) tries to authenticate, before any business operation runs. The message is one of:
|
|
10
|
+
|
|
11
|
+
- A raw Microsoft Graph authentication message surfaced verbatim — most often `Access token has expired or is not yet valid.` or similar wording mentioning an invalid/expired token. This is the typical token-expiry case.
|
|
12
|
+
- `The caller is not authenticated.`
|
|
13
|
+
- `Authentication failed.`
|
|
14
|
+
- `Authentication was cancelled.`
|
|
15
|
+
- `A configuration error AADSTS<code> occurred in the activity. For information on how to solve this, visit the page: https://docs.uipath.com/activities/other/latest/productivity/aadsts-errors` — an Entra ID (Azure AD) failure at token acquisition. The `AADSTS<code>` identifies the exact cause (e.g. `AADSTS65001` = admin consent not granted; `AADSTS700016`/`AADSTS7000215` = wrong app id/secret).
|
|
16
|
+
- `Authentication attempt took longer than <N> seconds to complete, and was cancelled.` — an interactive sign-in that wasn't completed in time. This fires while *creating / adding* the connection (the interactive sign-in wizard, default 60s), not mid-run for an already-authenticated connection.
|
|
17
|
+
- `The client did not complete the authentication after <N> seconds, and as a result the operation was canceled. Authentication type: InteractiveToken.` — an **Interactive Token** sign-in triggered *mid-run* (an activity needed a token and opened a browser/WAM sign-in) that nobody completed in the window (default 30s). This is the signature of Interactive Token running where no human can complete the prompt — most often an **unattended / Agent / StudioPro** job, or an attended run where the user never finished the sign-in.
|
|
18
|
+
- `No default connection is available.`
|
|
19
|
+
- `Automation Cloud cannot be reached. It may be a network fluctuation on the Runtime machine.`
|
|
20
|
+
|
|
21
|
+
What activities can produce this:
|
|
22
|
+
- **Any** Mail, Files/OneDrive, or Excel Online activity — they all authenticate through the same Microsoft 365 connection / Application Scope. Representative: **Send Mail** (`SendMailConnections`), **Get Email List** (`GetEmailListConnections`), **Get File List** (`GetFileListConnections`), **Upload File** (`UploadFilesConnections`), **Read Range** (`ReadRangeConnections`).
|
|
23
|
+
|
|
24
|
+
What can cause it:
|
|
25
|
+
- **Access token expired or invalid.** The cached token is no longer valid and could not be silently refreshed (refresh token expired, password changed, session revoked).
|
|
26
|
+
- **Consent revoked or never granted.** The app registration lacks admin consent for a requested permission, surfaced as an `AADSTS` configuration error (commonly `AADSTS65001`).
|
|
27
|
+
- **Interactive login timed out or was cancelled — usually the *symptom* of a wrong auth choice.** With Interactive Token auth a browser/WAM sign-in wasn't completed within the timeout. The timeout itself is the surface symptom; look one level up: **Interactive Token needs a human to complete the sign-in, so it is the wrong auth mode for an unattended / Agent / StudioPro job, or a scope with no bound account** — there the prompt can never be completed and every run times out. (An occasional attended run can succeed when a person happens to finish the sign-in, so a single past success doesn't make the mode viable for unattended use.)
|
|
28
|
+
- **No connection / wrong connection.** No default Microsoft 365 connection is configured, or the selected connection has lost its authentication.
|
|
29
|
+
- **Connection service unreachable.** The Runtime machine can't reach Automation Cloud (network fluctuation) to resolve the connection.
|
|
30
|
+
|
|
31
|
+
> **Different cause, do not apply this playbook:**
|
|
32
|
+
> - `The caller doesn't have permission to perform the action.` / `Access restricted to the item's owner.` / a raw `Insufficient privileges to complete the operation.` — the caller **is** authenticated but lacks the Graph permission for the operation. Use **insufficient-graph-scope**.
|
|
33
|
+
> - Configuration faults that fire before authentication (`Could not retrieve the selected asset`, `You must provide a value for ...`, `Please select an account.`) — use **application-scope-misconfigured**.
|
|
34
|
+
|
|
35
|
+
## Investigation
|
|
36
|
+
|
|
37
|
+
1. Read the exact message and match it to one of the patterns above — the wording determines the fix path (token vs consent vs interactive-timeout vs connection vs network).
|
|
38
|
+
2. If the message contains `AADSTS<code>`, note the code and look it up (the linked docs page maps each code to its cause). `AADSTS65001` = consent not granted; secret/cert/app-id codes = wrong or expired credentials.
|
|
39
|
+
3. Identify the connection / Application Scope authentication type (Interactive Token, Integration Service connection, App ID + Secret/Certificate, Username/Password) — this determines how the token is obtained and how to renew it.
|
|
40
|
+
4. **If the message is an interactive sign-in timeout** (`The client did not complete the authentication ...`), check the job's **execution context**: an unattended / Agent / StudioPro robot has no one to complete the browser/WAM prompt, so the timeout is structural (every run fails the same way) — the root cause is the auth mode, not the timeout value. An attended run could simply have had the user not finish the sign-in in time.
|
|
41
|
+
5. Confirm whether the failure is permanent (token / consent / credential / auth-mode problem — fails every run) or intermittent (network reaching Automation Cloud — clears on retry).
|
|
42
|
+
|
|
43
|
+
## Resolution
|
|
44
|
+
|
|
45
|
+
- **If the token is expired/invalid:** re-authenticate the connection — re-run the interactive login, refresh/reconnect the Integration Service connection, or rotate and update the app secret/certificate that has expired.
|
|
46
|
+
- **If `AADSTS65001` / consent:** have an administrator grant admin consent for the permissions the app registration requests.
|
|
47
|
+
- **If another `AADSTS` credential code:** correct the Application ID / Tenant / secret / certificate to match the app registration.
|
|
48
|
+
- **If an interactive sign-in timed out in an unattended / Agent / StudioPro context** (`The client did not complete the authentication after <N> seconds ... Authentication type: InteractiveToken.`): the root cause is the **auth mode**, not the timeout value. Switch the Microsoft 365 Scope to **app-only authentication (App ID + Secret or Certificate)** — the client-credentials flow needs no human — or route the connection through **Integration Service** (which refreshes the token). Selecting/binding an account only helps an *attended* desktop where a person completes the sign-in; it does **not** make Interactive Token viable for unattended/Agent runs, and raising the timeout won't help when no one is there to complete the prompt.
|
|
49
|
+
- **If an interactive sign-in timed out on an attended desktop:** complete the browser/WAM sign-in within the timeout window on the next run.
|
|
50
|
+
- **If `No default connection is available`:** select or configure a valid Microsoft 365 connection on the activity / Application Scope.
|
|
51
|
+
- **If `Automation Cloud cannot be reached`:** transient network issue — verify the Runtime machine's connectivity to Automation Cloud and re-run.
|
|
52
|
+
|
|
53
|
+
If the connection authenticates cleanly on its own (e.g. a test call succeeds) yet the activity still 401s, the cause is outside the activity — escalate (tenant-level conditional access, token lifetime policy, or a revoked session).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
confidence: high
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# O365 Files — Copy Item null DriveItem input
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
What this looks like — the legacy **Copy Item** (`CopyItem`) activity faults with a raw:
|
|
10
|
+
|
|
11
|
+
- `System.ArgumentNullException: Value cannot be null. (Parameter 'DriveItem')`
|
|
12
|
+
|
|
13
|
+
The activity checks its `DriveItem` input at the start of execution and throws when the bound variable is `null`. Legacy activity — the exception escapes unwrapped.
|
|
14
|
+
|
|
15
|
+
What can cause it:
|
|
16
|
+
- **Upstream lookup matched nothing.** The variable bound to `DriveItem` is the output of an upstream `FindFilesAndFolders` / get-item activity that found no match — `FindFilesAndFolders` leaves its `First` output unset when the search returns zero results, so the variable stays `null`.
|
|
17
|
+
- **Variable never assigned** — the output binding on the upstream activity is missing, or the assignment sits in a conditional branch that didn't run.
|
|
18
|
+
|
|
19
|
+
What to look for:
|
|
20
|
+
- Which variable is bound to the activity's `DriveItem` property, and which upstream activity is supposed to populate it.
|
|
21
|
+
- Whether the upstream search criteria can legitimately match nothing for some inputs (intermittent fault = data-dependent empty result).
|
|
22
|
+
|
|
23
|
+
> **Different cause, do not apply this playbook:**
|
|
24
|
+
> - A null `Destination` / parent is **not** an error for this activity — it falls back to the OneDrive root. Only the `DriveItem` parameter faults.
|
|
25
|
+
> - `Value cannot be null. (Parameter '<localized property name>')` from a **Connections** activity is a missing required input on that activity (wrapped form) — read that activity's configuration, e.g. [create-folder-invalid-path.md](./create-folder-invalid-path.md) for Create Folder.
|
|
26
|
+
> - `The resource could not be found.` — the item reference was non-null but doesn't resolve; use [drive-item-not-found.md](./drive-item-not-found.md).
|
|
27
|
+
|
|
28
|
+
## Resolution
|
|
29
|
+
|
|
30
|
+
The error is unambiguous; the `DriveItem` input was `null` at runtime. Fix the producer, then guard:
|
|
31
|
+
|
|
32
|
+
1. **Trace the variable bound to `DriveItem`** back to its producing activity and confirm the output binding is set and the producer actually ran before Copy Item.
|
|
33
|
+
2. **If the producer is a search (`FindFilesAndFolders`):** the search matched nothing — verify the search folder, filename filter, and search mode against what's actually in OneDrive/SharePoint, and fix the criteria.
|
|
34
|
+
3. **Add a null guard** (If `DriveItem Is Nothing`) between the lookup and Copy Item, handling the no-match case explicitly (skip, log, or business exception) instead of letting the copy fault.
|