@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.
Files changed (592) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +5 -2
  3. package/CODEOWNERS +22 -7
  4. package/README.md +14 -1
  5. package/assets/skill-status.json +14 -1
  6. package/assets/uip-catalog-snapshot.json +13 -2
  7. package/hooks/hooks.json +12 -0
  8. package/hooks/send-telemetry.sh +445 -0
  9. package/hooks/suggest-permissions.sh +6 -0
  10. package/package.json +1 -1
  11. package/skills/uipath-admin/SKILL.md +24 -4
  12. package/skills/uipath-admin/references/audit-commands.md +25 -21
  13. package/skills/uipath-admin/references/audit-workflow-guide.md +26 -25
  14. package/skills/uipath-admin/references/diagnose/CAPABILITY.md +74 -0
  15. package/skills/uipath-admin/references/diagnose/references/failure-modes.md +228 -0
  16. package/skills/uipath-admin/references/diagnose/references/troubleshooting-guide.md +106 -0
  17. package/skills/uipath-admin/references/identity-troubleshoot-guide.md +251 -0
  18. package/skills/uipath-agents/SKILL.md +12 -8
  19. package/skills/uipath-agents/references/coded/capabilities/context-grounding.md +2 -0
  20. package/skills/uipath-agents/references/coded/capabilities/conversational-agents.md +2 -0
  21. package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails-recommend.md +12 -7
  22. package/skills/uipath-agents/references/coded/capabilities/guardrails/guardrails.md +141 -1
  23. package/skills/uipath-agents/references/coded/capabilities/human-in-the-loop.md +2 -0
  24. package/skills/uipath-agents/references/coded/capabilities/integration-service.md +19 -33
  25. package/skills/uipath-agents/references/coded/lifecycle/bindings-reference.md +54 -22
  26. package/skills/uipath-agents/references/coded/lifecycle/build.md +1 -0
  27. package/skills/uipath-agents/references/coded/lifecycle/evaluations/evaluation-sets.md +5 -1
  28. package/skills/uipath-agents/references/coded/lifecycle/setup.md +3 -1
  29. package/skills/uipath-agents/references/coded/quickstart.md +11 -10
  30. package/skills/uipath-agents/references/coded-vs-lowcode-guide.md +1 -0
  31. package/skills/uipath-agents/references/context-grounding-patterns.md +1 -1
  32. package/skills/uipath-agents/references/lowcode/agent-definition.md +97 -12
  33. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/analyze-attachments.md +2 -2
  34. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/batch-transform/impl-json.md +40 -14
  35. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/built-in-tools.md +4 -3
  36. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/deeprag/impl-json.md +38 -6
  37. package/skills/uipath-agents/references/lowcode/capabilities/context/attachments.md +1 -1
  38. package/skills/uipath-agents/references/lowcode/capabilities/context/context.md +1 -1
  39. package/skills/uipath-agents/references/lowcode/capabilities/context/datafabric.md +1 -1
  40. package/skills/uipath-agents/references/lowcode/capabilities/context/index.md +7 -3
  41. package/skills/uipath-agents/references/lowcode/capabilities/escalation/escalation.md +49 -38
  42. package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails-recommend.md +3 -1
  43. package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails.md +49 -49
  44. package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +34 -14
  45. package/skills/uipath-agents/references/lowcode/capabilities/integration-service/integration-service.md +1 -1
  46. package/skills/uipath-agents/references/lowcode/capabilities/memory/memory.md +2 -0
  47. package/skills/uipath-agents/references/lowcode/capabilities/process/process.md +2 -2
  48. package/skills/uipath-agents/references/lowcode/capabilities/process/solution-files.md +1 -1
  49. package/skills/uipath-agents/references/lowcode/critical-rules/autonomous-critical-rules.md +15 -0
  50. package/skills/uipath-agents/references/lowcode/critical-rules/conversational-critical-rules.md +19 -0
  51. package/skills/uipath-agents/references/lowcode/{critical-rules.md → critical-rules/critical-rules.md} +25 -27
  52. package/skills/uipath-agents/references/lowcode/debug.md +6 -3
  53. package/skills/uipath-agents/references/lowcode/evaluations/evaluate.md +2 -0
  54. package/skills/uipath-agents/references/lowcode/lowcode.md +29 -6
  55. package/skills/uipath-agents/references/lowcode/model-selection-guide.md +4 -1
  56. package/skills/uipath-agents/references/lowcode/project-lifecycle.md +20 -8
  57. package/skills/uipath-agents/references/lowcode/prompting/agent-prompting-guide.md +17 -0
  58. package/skills/uipath-agents/references/lowcode/{agent-prompting-guide.md → prompting/autonomous-agent-prompting-guide.md} +9 -11
  59. package/skills/uipath-agents/references/lowcode/prompting/conversational-agent-prompting-guide.md +123 -0
  60. package/skills/uipath-agents/references/lowcode/solution-resources.md +1 -1
  61. package/skills/uipath-api-workflow/SKILL.md +32 -12
  62. package/skills/uipath-api-workflow/references/cli-reference.md +110 -22
  63. package/skills/uipath-api-workflow/references/connector-activity-discovery.md +43 -4
  64. package/skills/uipath-api-workflow/references/troubleshooting.md +23 -7
  65. package/skills/uipath-api-workflow/references/workflow-file-format.md +25 -7
  66. package/skills/uipath-coded-apps/SKILL.md +55 -12
  67. package/skills/uipath-coded-apps/assets/fixtures/governance-dashboard-starter-kit.tar.gz +0 -0
  68. package/skills/uipath-coded-apps/assets/scripts/dashboards/build-dashboard.mjs +1371 -0
  69. package/skills/uipath-coded-apps/assets/scripts/dashboards/capability-registry.json +845 -0
  70. package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/build.mjs +338 -0
  71. package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/edit.mjs +248 -0
  72. package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/template.mjs +82 -0
  73. package/skills/uipath-coded-apps/assets/scripts/dashboards/flows/upgrade.mjs +73 -0
  74. package/skills/uipath-coded-apps/assets/scripts/dashboards/lifecycle.mjs +207 -0
  75. package/skills/uipath-coded-apps/assets/scripts/dashboards/setup-admin-folder.mjs +146 -0
  76. package/skills/uipath-coded-apps/assets/scripts/dashboards/tests/regime-eject.test.mjs +124 -0
  77. package/skills/uipath-coded-apps/assets/scripts/dashboards/tests/resolution.test.mjs +1635 -0
  78. package/skills/uipath-coded-apps/assets/templates/action-app/app-template.css +9 -0
  79. package/skills/uipath-coded-apps/assets/templates/action-app/document-tab-template.css +139 -0
  80. package/skills/uipath-coded-apps/assets/templates/action-app/form-template.css +442 -0
  81. package/skills/uipath-coded-apps/assets/templates/action-app/index-template.css +111 -0
  82. package/skills/uipath-coded-apps/assets/templates/action-app-template.md +357 -152
  83. package/skills/uipath-coded-apps/assets/templates/web-app-template.md +255 -78
  84. package/skills/uipath-coded-apps/references/create-action-app.md +284 -195
  85. package/skills/uipath-coded-apps/references/create-web-app.md +64 -26
  86. package/skills/uipath-coded-apps/references/dashboards/CAPABILITY.md +179 -0
  87. package/skills/uipath-coded-apps/references/dashboards/aesthetic/charting.md +138 -0
  88. package/skills/uipath-coded-apps/references/dashboards/aesthetic/layout-patterns.md +152 -0
  89. package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +423 -0
  90. package/skills/uipath-coded-apps/references/dashboards/plugins/deploy/impl.md +322 -0
  91. package/skills/uipath-coded-apps/references/dashboards/primitives/customization.md +66 -0
  92. package/skills/uipath-coded-apps/references/dashboards/primitives/detail-views.md +64 -0
  93. package/skills/uipath-coded-apps/references/dashboards/primitives/incremental-editor.md +92 -0
  94. package/skills/uipath-coded-apps/references/dashboards/primitives/state-file.md +64 -0
  95. package/skills/uipath-coded-apps/references/dashboards/primitives/tier-resolution.md +474 -0
  96. package/skills/uipath-coded-apps/references/debug.md +15 -21
  97. package/skills/uipath-coded-apps/references/oauth-client-setup.md +5 -5
  98. package/skills/uipath-coded-apps/references/oauth-scopes.md +64 -2
  99. package/skills/uipath-coded-apps/references/pack-publish-deploy.md +12 -5
  100. package/skills/uipath-coded-apps/references/patterns.md +10 -5
  101. package/skills/uipath-coded-apps/references/sdk/action-center.md +32 -6
  102. package/skills/uipath-coded-apps/references/sdk/agents.md +241 -0
  103. package/skills/uipath-coded-apps/references/sdk/governance-traces.md +186 -0
  104. package/skills/uipath-coded-apps/references/sdk/governance.md +72 -0
  105. package/skills/uipath-coded-apps/references/sdk/imports.md +4 -0
  106. package/skills/uipath-coded-apps/references/sdk/maestro.md +114 -0
  107. package/skills/uipath-coded-apps/references/sdk/orchestrator.md +80 -4
  108. package/skills/uipath-coded-apps/references/sdk/pagination.md +2 -0
  109. package/skills/uipath-coded-apps/references/sdk/traces.md +89 -0
  110. package/skills/uipath-coded-apps/references/widgets/validation-station.md +308 -0
  111. package/skills/uipath-coded-apps/scripts/validate-action-schema.js +241 -0
  112. package/skills/uipath-connector-builder/SKILL.md +192 -0
  113. package/skills/uipath-connector-builder/references/auth.md +171 -0
  114. package/skills/uipath-connector-builder/references/configuration.md +130 -0
  115. package/skills/uipath-connector-builder/references/debugging.md +80 -0
  116. package/skills/uipath-connector-builder/references/element-json.md +148 -0
  117. package/skills/uipath-connector-builder/references/events.md +132 -0
  118. package/skills/uipath-connector-builder/references/hooks.md +198 -0
  119. package/skills/uipath-connector-builder/references/overview.md +78 -0
  120. package/skills/uipath-connector-builder/references/standard-resources.md +111 -0
  121. package/skills/uipath-connector-builder/references/system-resources.md +85 -0
  122. package/skills/uipath-feedback/SKILL.md +43 -29
  123. package/skills/{uipath-agents/references/coded/frameworks/coded-functions.md → uipath-functions/SKILL.md} +36 -23
  124. package/skills/uipath-governance/SKILL.md +49 -8
  125. package/skills/uipath-governance/references/aops-policy/aops-policy-commands.md +10 -10
  126. package/skills/uipath-governance/references/aops-policy/aops-policy-deploy-guide.md +7 -7
  127. package/skills/uipath-governance/references/auth-context.md +101 -0
  128. package/skills/uipath-governance/references/cli-cheatsheet.md +207 -0
  129. package/skills/uipath-governance/references/compliance-pack/catalog/impl.md +79 -0
  130. package/skills/uipath-governance/references/compliance-pack/coverage/impl.md +141 -0
  131. package/skills/uipath-governance/references/compliance-pack/disable/impl.md +39 -0
  132. package/skills/uipath-governance/references/compliance-pack/full-apply/impl.md +164 -0
  133. package/skills/uipath-governance/references/compliance-pack/partial-apply/impl.md +266 -0
  134. package/skills/uipath-governance/references/compliance-pack/partial-apply/merge-overrides-guide.md +28 -0
  135. package/skills/uipath-governance/references/compliance-pack/partial-apply/planning.md +82 -0
  136. package/skills/uipath-governance/references/compliance-pack/partial-apply/synthesize-formdata-guide.md +22 -0
  137. package/skills/uipath-governance/references/compliance-pack/preview-gate.md +43 -0
  138. package/skills/uipath-governance/references/compliance-pack/query/impl.md +75 -0
  139. package/skills/uipath-governance/references/diagnose/CAPABILITY.md +71 -0
  140. package/skills/uipath-governance/references/diagnose/references/failure-modes.md +201 -0
  141. package/skills/uipath-governance/references/diagnose/references/troubleshooting-guide.md +137 -0
  142. package/skills/uipath-governance/references/disambiguation-guide.md +15 -0
  143. package/skills/uipath-governance/scripts/merge-overrides.mjs +81 -0
  144. package/skills/uipath-governance/scripts/synthesize-formdata.mjs +86 -0
  145. package/skills/uipath-human-in-the-loop/SKILL.md +30 -25
  146. package/skills/uipath-human-in-the-loop/references/hitl-node-apptask.md +38 -4
  147. package/skills/uipath-human-in-the-loop/references/hitl-node-coded-action-app.md +2 -3
  148. package/skills/uipath-human-in-the-loop/references/hitl-node-quickform.md +92 -34
  149. package/skills/uipath-ixp/SKILL.md +120 -0
  150. package/skills/uipath-ixp/references/cli-reference.md +121 -0
  151. package/skills/uipath-ixp/references/improve-prompts-guide.md +283 -0
  152. package/skills/uipath-ixp/references/label-documents-guide.md +207 -0
  153. package/skills/uipath-ixp/references/project-setup-guide.md +90 -0
  154. package/skills/uipath-maestro-bpmn/SKILL.md +167 -68
  155. package/skills/uipath-maestro-bpmn/references/cli-conventions.md +47 -0
  156. package/skills/uipath-maestro-bpmn/references/diagnose/CAPABILITY.md +6 -6
  157. package/skills/uipath-maestro-bpmn/references/operate/CAPABILITY.md +3 -3
  158. package/skills/uipath-maestro-bpmn/references/registry-workflow.md +199 -0
  159. package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +500 -0
  160. package/skills/uipath-maestro-bpmn/validator/README.md +214 -0
  161. package/skills/uipath-maestro-bpmn/validator/bpmn-spec.json +2477 -0
  162. package/skills/uipath-maestro-bpmn/validator/model.mjs +419 -0
  163. package/skills/uipath-maestro-bpmn/validator/package.json +17 -0
  164. package/skills/uipath-maestro-bpmn/validator/rules.mjs +1403 -0
  165. package/skills/uipath-maestro-bpmn/validator/samples/invalid-conditional-and-variable.bpmn +25 -0
  166. package/skills/uipath-maestro-bpmn/validator/samples/valid-baseline.bpmn +52 -0
  167. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.0.bpmn +157 -0
  168. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.1.bpmn +333 -0
  169. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.1.0.bpmn +598 -0
  170. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.2.0.bpmn +1709 -0
  171. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.2.0.bpmn +564 -0
  172. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.3.0.bpmn +671 -0
  173. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.4.0.bpmn +1045 -0
  174. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.5.0.bpmn +1176 -0
  175. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.6.0.bpmn +670 -0
  176. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.7.0.bpmn +466 -0
  177. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Can_Parse_Complex_Process_With_Task_Gateway_BoundaryEvent_etc.bpmn +74 -0
  178. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExclusiveGatewayDefaultFlow.bpmn +32 -0
  179. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExternalAgentWorkflow.bpmn +62 -0
  180. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Golden_Scenario.initial.bpmn +361 -0
  181. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/InclusiveJoinRouteAwayBranch.bpmn +62 -0
  182. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_AsyncExecution_And_Create_CorrectModel.bpmn +74 -0
  183. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_ExtractionValidation_And_Create_CorrectModel.bpmn +35 -0
  184. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_FileUpload_And_Create_CorrectModel.bpmn +33 -0
  185. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_JobAttachment_And_Create_CorrectModel.bpmn +35 -0
  186. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_SubProcess_With_Multiple_Element_Types.bpmn +76 -0
  187. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartEventWithOutputs.bpmn +36 -0
  188. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartGatewayEnd.bpmn +44 -0
  189. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all elements.bpmn +516 -0
  190. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all_sequence_flow_types.bpmn +173 -0
  191. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/demo.bpmn +181 -0
  192. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-collapsed.bpmn +126 -0
  193. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-expanded.bpmn +122 -0
  194. package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-003-collapsed_deeply-nested.bpmn +438 -0
  195. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.1.0.bpmn +87 -0
  196. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.3.0.bpmn +165 -0
  197. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ApiWorkflow.bpmn +39 -0
  198. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnNestedSubProcessTests.bpmn +102 -0
  199. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnTimerBoundaryEvents.bpmn +160 -0
  200. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithCatchAllErrorEventSubProcess.bpmn +45 -0
  201. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithSpecificErrorEventSubProcess.bpmn +46 -0
  202. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/CaseManagementWithConstantIdentifier.bpmn +218 -0
  203. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorBoundary.bpmn +78 -0
  204. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorPropagationInEventSubprocess.bpmn +340 -0
  205. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/EventBasedGatewayFirstCatcherWins.bpmn +56 -0
  206. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Example-EventBasedGateway.bpmn +117 -0
  207. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewayConditional.bpmn +45 -0
  208. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewaySharedEndEvent.bpmn +45 -0
  209. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveWithParallelGateway.bpmn +68 -0
  210. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/FourScriptTasks.bpmn +84 -0
  211. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/HitlTaskOnly.bpmn +55 -0
  212. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/InclusiveGatewayForkJoin.bpmn +69 -0
  213. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_BPMN_Elements_And_Create_CorrectModel.bpmn +20 -0
  214. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_HttpRequest_ServiceTask_And_Create_Correct_Model.bpmn +34 -0
  215. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_MessageBoundaryEvent_And_Create_CorrectModel.bpmn +87 -0
  216. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Script_Task_V2_And_Create_Correct_Model.bpmn +31 -0
  217. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Sets_Containers_Properly.bpmn +129 -0
  218. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ScriptWritesVariableThenGatewayBranches.bpmn +55 -0
  219. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/boundaryevent.bpmn +30 -0
  220. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/collapsed-subprocess.bpmn +83 -0
  221. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/connectable-types.bpmn +85 -0
  222. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/extensions-orchestrator-start-job.bpmn +80 -0
  223. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/multiparticipantpool.bpmn +77 -0
  224. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/nestedsubprocess.bpmn +36 -0
  225. package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/simple.bpmn +59 -0
  226. package/skills/uipath-maestro-bpmn/validator/test/integration.test.mjs +146 -0
  227. package/skills/uipath-maestro-bpmn/validator/test/model-helpers.mjs +42 -0
  228. package/skills/uipath-maestro-bpmn/validator/test/ported-rule-tests.mjs +983 -0
  229. package/skills/uipath-maestro-bpmn/validator/test/run-tests.mjs +530 -0
  230. package/skills/uipath-maestro-bpmn/validator/uipath-moddle.v1.json +715 -0
  231. package/skills/uipath-maestro-bpmn/validator/validate-bpmn.mjs +164 -0
  232. package/skills/uipath-maestro-case/SKILL.md +5 -1
  233. package/skills/uipath-maestro-case/assets/templates/sdd-template-examples.md +10 -0
  234. package/skills/uipath-maestro-case/assets/templates/sdd-template.md +89 -17
  235. package/skills/uipath-maestro-case/references/bindings-and-expressions.md +26 -0
  236. package/skills/uipath-maestro-case/references/case-editing-operations.md +3 -0
  237. package/skills/uipath-maestro-case/references/implementation.md +11 -4
  238. package/skills/uipath-maestro-case/references/phase-0-interview.md +8 -7
  239. package/skills/uipath-maestro-case/references/phased-execution.md +2 -1
  240. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +21 -0
  241. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +2 -0
  242. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +15 -9
  243. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +131 -4
  244. package/skills/uipath-maestro-case/references/sdd-generation-rules.md +94 -17
  245. package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +1 -1
  246. package/skills/uipath-maestro-flow/references/author/references/planning-arch.md +2 -2
  247. package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/impl.md +11 -11
  248. package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/planning.md +6 -6
  249. package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-connector.md +4 -1
  250. package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/impl.md +157 -122
  251. package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/planning.md +16 -4
  252. package/skills/uipath-maestro-flow/references/evaluate/references/commands-reference.md +8 -8
  253. package/skills/uipath-maestro-flow/references/evaluate/references/running-guide.md +3 -3
  254. package/skills/uipath-maestro-flow/references/shared/cli-commands.md +1 -1
  255. package/skills/uipath-planner/SKILL.md +19 -8
  256. package/skills/uipath-planner/assets/templates/agent-sdd-template.md +14 -0
  257. package/skills/uipath-planner/assets/templates/api-workflow-sdd-template.md +14 -0
  258. package/skills/uipath-planner/assets/templates/case-sdd-template.md +14 -0
  259. package/skills/uipath-planner/assets/templates/coded-app-sdd-template.md +14 -0
  260. package/skills/uipath-planner/assets/templates/flow-sdd-template.md +14 -0
  261. package/skills/uipath-planner/assets/templates/rpa-sdd-template.md +40 -5
  262. package/skills/uipath-planner/references/asdd-crosswalk-guide.md +55 -0
  263. package/skills/uipath-planner/references/attended-reauth-pattern-guide.md +43 -0
  264. package/skills/uipath-planner/references/multi-skill-patterns-guide.md +4 -0
  265. package/skills/uipath-planner/references/non-pdd-lane-guide.md +2 -0
  266. package/skills/uipath-planner/references/pdd-analysis-guide.md +24 -1
  267. package/skills/uipath-planner/references/pdd-driven-lane-guide.md +6 -2
  268. package/skills/uipath-planner/references/plan-and-tasks-format.md +2 -0
  269. package/skills/uipath-planner/references/platform-availability-guide.md +43 -0
  270. package/skills/uipath-planner/references/product-selection-guide.md +20 -0
  271. package/skills/uipath-planner/references/sdd-generation-guide.md +90 -21
  272. package/skills/uipath-planner/references/tenant-library-search-guide.md +5 -1
  273. package/skills/uipath-planner/scripts/docx-extract.sh +54 -0
  274. package/skills/uipath-planner/scripts/sdd-to-docx.sh +76 -0
  275. package/skills/uipath-platform/SKILL.md +54 -7
  276. package/skills/uipath-platform/references/context-grounding/index-management.md +123 -0
  277. package/skills/uipath-platform/references/data-fabric/bulk-import.md +86 -0
  278. package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/choice-sets.md +33 -12
  279. package/skills/uipath-platform/references/data-fabric/data-fabric.md +352 -0
  280. package/skills/uipath-platform/references/data-fabric/entity-schema.md +444 -0
  281. package/skills/uipath-platform/references/data-fabric/file-attachments.md +122 -0
  282. package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/filter-platform-contract.md +3 -3
  283. package/skills/{uipath-data-fabric/references → uipath-platform/references/data-fabric}/records-query.md +46 -10
  284. package/skills/uipath-platform/references/integration-service/http-request.md +15 -1
  285. package/skills/uipath-platform/references/integration-service/vendor-docs-registry.json +173 -0
  286. package/skills/uipath-platform/references/uip-commands.md +12 -4
  287. package/skills/uipath-review/SKILL.md +53 -12
  288. package/skills/uipath-review/references/agents/agent-common-issues.md +1 -1
  289. package/skills/uipath-review/references/agents/agent-grading-rubric.md +133 -0
  290. package/skills/uipath-review/references/agents/agent-review-checklist.md +23 -3
  291. package/skills/uipath-review/references/agents/agents-coded-rules.md +7 -0
  292. package/skills/uipath-review/references/agents/agents-lowcode-rules.md +13 -3
  293. package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +198 -0
  294. package/skills/uipath-review/references/architecture-assessment-guide.md +2 -0
  295. package/skills/uipath-review/references/review-workflow-guide.md +9 -5
  296. package/skills/uipath-review/references/rule-catalog-workflow.md +3 -3
  297. package/skills/uipath-rpa/SKILL.md +18 -6
  298. package/skills/uipath-rpa/references/cli-reference.md +57 -3
  299. package/skills/uipath-rpa/references/common-activity-card.md +1 -1
  300. package/skills/uipath-rpa/references/connector-capabilities.md +2 -0
  301. package/skills/uipath-rpa/references/data-manipulation-guide.md +311 -0
  302. package/skills/uipath-rpa/references/environment-setup.md +0 -2
  303. package/skills/uipath-rpa/references/error-handling-guide.md +381 -0
  304. package/skills/uipath-rpa/references/is-connector-xaml-guide.md +127 -11
  305. package/skills/uipath-rpa/references/reframework-guide.md +2 -0
  306. package/skills/uipath-rpa/references/testing-guide.md +19 -0
  307. package/skills/uipath-rpa/references/ui-automation-guide.md +129 -18
  308. package/skills/uipath-rpa/references/uia-configure-target-workflows.md +22 -1
  309. package/skills/uipath-rpa/references/uia-elements-interaction-guide.md +93 -0
  310. package/skills/uipath-rpa/references/xaml/canvas-layout-guide.md +41 -4
  311. package/skills/uipath-rpa/references/xaml/common-pitfalls.md +12 -3
  312. package/skills/uipath-rpa/references/xaml/flowchart-guide.md +113 -0
  313. package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +5 -9
  314. package/skills/uipath-solution/SKILL.md +11 -8
  315. package/skills/uipath-solution/references/pack-and-deploy.md +18 -1
  316. package/skills/uipath-solution/references/solution-overview.md +3 -0
  317. package/skills/uipath-test/SKILL.md +2 -1
  318. package/skills/uipath-troubleshoot/SKILL.md +24 -26
  319. package/skills/uipath-troubleshoot/agents/depth-verifier.md +24 -25
  320. package/skills/uipath-troubleshoot/agents/hypothesis-generator.md +8 -4
  321. package/skills/uipath-troubleshoot/agents/hypothesis-tester.md +85 -38
  322. package/skills/uipath-troubleshoot/agents/presenter.md +7 -7
  323. package/skills/uipath-troubleshoot/agents/scope-checker.md +3 -6
  324. package/skills/uipath-troubleshoot/agents/shared.md +26 -21
  325. package/skills/uipath-troubleshoot/agents/triage.md +117 -49
  326. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/investigation_guide.md +43 -0
  327. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/overview.md +57 -0
  328. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-action-failed-after-find.md +100 -0
  329. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-cell-targeting-failures.md +111 -0
  330. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-element-not-found.md +125 -0
  331. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-get-text-empty-or-wrong-result.md +117 -0
  332. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-invalid-descriptor.md +102 -0
  333. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scope-setup-failures.md +136 -0
  334. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-scroll-search-failures.md +114 -0
  335. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-server-auth-throttling-network.md +95 -0
  336. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/playbooks/cv-silent-failures-and-false-results.md +124 -0
  337. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/presentation.md +8 -0
  338. package/skills/uipath-troubleshoot/references/activity-packages/cv-activities/summary.md +15 -0
  339. package/skills/uipath-troubleshoot/references/activity-packages/database-activities/investigation_guide.md +42 -0
  340. package/skills/uipath-troubleshoot/references/activity-packages/database-activities/overview.md +41 -0
  341. package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/connect-to-database-failures.md +104 -0
  342. package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/execute-non-query-failures.md +97 -0
  343. package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/execute-query-failures.md +134 -0
  344. package/skills/uipath-troubleshoot/references/activity-packages/database-activities/playbooks/start-transaction-failures.md +94 -0
  345. package/skills/uipath-troubleshoot/references/activity-packages/database-activities/presentation.md +10 -0
  346. package/skills/uipath-troubleshoot/references/activity-packages/database-activities/summary.md +10 -0
  347. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/investigation_guide.md +27 -9
  348. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/overview.md +51 -10
  349. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/append-range-failures.md +146 -0
  350. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/delete-range-failures.md +126 -0
  351. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/excel-application-card-failures.md +139 -0
  352. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/excel-application-scope-failures.md +118 -0
  353. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/execute-macro-failures.md +149 -0
  354. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/write-range-failures.md +145 -0
  355. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/presentation.md +12 -7
  356. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/summary.md +6 -0
  357. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/investigation_guide.md +1 -0
  358. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/overview.md +12 -4
  359. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/connection-and-auth-failures.md +55 -0
  360. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/drive-file-not-found.md +18 -10
  361. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/get-newest-email-not-found.md +9 -8
  362. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/invalid-or-null-input.md +68 -0
  363. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/transient-and-timeout-errors.md +52 -0
  364. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/playbooks/upload-storage-quota-exceeded.md +1 -1
  365. package/skills/uipath-troubleshoot/references/activity-packages/gsuite-activities/summary.md +5 -2
  366. package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/overview.md +28 -0
  367. package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/delete-outlook-mail-failures.md +105 -0
  368. package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/get-outlook-mail-failures.md +109 -0
  369. package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/move-outlook-mail-failures.md +97 -0
  370. package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/send-outlook-mail-failures.md +95 -0
  371. package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/summary.md +8 -0
  372. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/investigation_guide.md +23 -0
  373. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/overview.md +9 -0
  374. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/application-scope-misconfigured.md +49 -0
  375. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/authentication-token-invalid.md +53 -0
  376. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/copy-item-argument-null.md +34 -0
  377. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/create-folder-invalid-path.md +36 -0
  378. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/download-file-conversion-or-destination.md +40 -0
  379. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/drive-item-not-found.md +1 -1
  380. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/email-trigger-connection-event-failure.md +45 -0
  381. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/insufficient-graph-scope.md +44 -0
  382. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/legacy-mail-null-reference.md +43 -0
  383. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-folder-not-found.md +4 -3
  384. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-invalid-odata-query.md +43 -0
  385. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/mail-message-not-found.md +45 -0
  386. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/request-throttled.md +45 -0
  387. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/send-mail-rejected.md +52 -0
  388. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/transient-service-error.md +48 -0
  389. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/playbooks/upload-file-quota-or-size.md +47 -0
  390. package/skills/uipath-troubleshoot/references/activity-packages/o365-activities/summary.md +15 -1
  391. package/skills/uipath-troubleshoot/references/activity-packages/python-activities/investigation_guide.md +32 -0
  392. package/skills/uipath-troubleshoot/references/activity-packages/python-activities/overview.md +38 -0
  393. package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/invoke-method-failures.md +57 -0
  394. package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/invoke-python-method-pipe-is-broken.md +44 -0
  395. package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/load-script-failures.md +62 -0
  396. package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/python-path-not-valid.md +39 -0
  397. package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/python-scope-architecture-version-mismatch.md +41 -0
  398. package/skills/uipath-troubleshoot/references/activity-packages/python-activities/playbooks/working-folder-relative-path.md +34 -0
  399. package/skills/uipath-troubleshoot/references/activity-packages/python-activities/presentation.md +9 -0
  400. package/skills/uipath-troubleshoot/references/activity-packages/python-activities/summary.md +12 -0
  401. package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +1 -1
  402. package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-robot-not-authenticated.md +29 -22
  403. package/skills/uipath-troubleshoot/references/activity-packages/system-activities/summary.md +1 -1
  404. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/investigation_guide.md +30 -0
  405. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/overview.md +36 -0
  406. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-malformed-input.md +36 -0
  407. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-null-input.md +35 -0
  408. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/deserialize-type-mismatch.md +40 -0
  409. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-client-null-reference.md +34 -0
  410. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-connection-failure.md +48 -0
  411. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-timeout.md +40 -0
  412. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/net-http-request-aggregate-failure.md +38 -0
  413. package/skills/uipath-troubleshoot/references/activity-packages/web-activities/summary.md +13 -0
  414. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/investigation_guide.md +55 -0
  415. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/overview.md +82 -0
  416. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/add-picture-failures.md +51 -0
  417. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/append-text-missing-container.md +31 -0
  418. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/append-text-zero-byte-file.md +32 -0
  419. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-com-hang.md +46 -0
  420. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-missing-output-dir.md +32 -0
  421. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/export-pdf-output-path-format.md +35 -0
  422. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-doc-format.md +30 -0
  423. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-missing-container.md +29 -0
  424. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/read-text-protected-view.md +32 -0
  425. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-com-busy.md +35 -0
  426. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-file-locked.md +33 -0
  427. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-headers-textboxes-skipped.md +30 -0
  428. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-length-limit.md +30 -0
  429. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-loop-template-overwrite.md +31 -0
  430. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-multiline-formatting.md +31 -0
  431. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-silent-no-substitution.md +32 -0
  432. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/replace-text-version-mismatch.md +30 -0
  433. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-com-interop-failures.md +52 -0
  434. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-com-start-background-session0.md +50 -0
  435. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-export-pdf-com-wrong-thread.md +46 -0
  436. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-open-sharepoint-url-com-command-failed.md +45 -0
  437. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-cannot-create-unknown-type.md +30 -0
  438. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-com-not-installed.md +35 -0
  439. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-file-corrupted.md +34 -0
  440. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-file-path-not-found.md +36 -0
  441. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/playbooks/word-scope-hangs-background-prompt.md +34 -0
  442. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/presentation.md +11 -0
  443. package/skills/uipath-troubleshoot/references/activity-packages/word-activities/summary.md +38 -0
  444. package/skills/uipath-troubleshoot/references/products/integration-service/investigation_guide.md +9 -0
  445. package/skills/uipath-troubleshoot/references/products/integration-service/overview.md +7 -0
  446. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connection-invalid.md +9 -0
  447. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-aggregate-exception.md +30 -0
  448. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-general-exception.md +43 -0
  449. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-null-reference.md +36 -0
  450. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-remote-exception.md +31 -0
  451. package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-runtime-exception.md +40 -0
  452. package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +5 -0
  453. package/skills/uipath-troubleshoot/references/products/maestro/investigation_guide.md +2 -1
  454. package/skills/uipath-troubleshoot/references/products/orchestrator/investigation_guide.md +105 -10
  455. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-faulted-logon-failure.md +1 -1
  456. package/skills/uipath-troubleshoot/references/summary.md +59 -3
  457. package/skills/uipath-troubleshoot/schemas/evidence.schema.md +48 -0
  458. package/skills/uipath-troubleshoot/schemas/hypotheses.schema.md +22 -7
  459. package/skills/uipath-troubleshoot/schemas/scope-check.schema.md +1 -1
  460. package/skills/uipath-troubleshoot/schemas/state.schema.md +81 -6
  461. package/version-manifest.json +2 -2
  462. package/skills/uipath-data-fabric/SKILL.md +0 -239
  463. package/skills/uipath-data-fabric/references/bulk-import.md +0 -73
  464. package/skills/uipath-data-fabric/references/entity-schema.md +0 -391
  465. package/skills/uipath-data-fabric/references/file-attachments.md +0 -65
  466. package/skills/uipath-maestro-bpmn/.maintenance/README.md +0 -241
  467. package/skills/uipath-maestro-bpmn/.maintenance/check-all.sh +0 -41
  468. package/skills/uipath-maestro-bpmn/.maintenance/check-anchors.sh +0 -83
  469. package/skills/uipath-maestro-bpmn/.maintenance/check-depth.sh +0 -132
  470. package/skills/uipath-maestro-bpmn/.maintenance/check-link-text.sh +0 -123
  471. package/skills/uipath-maestro-bpmn/.maintenance/check-links.sh +0 -70
  472. package/skills/uipath-maestro-bpmn/.maintenance/check-orphans.sh +0 -93
  473. package/skills/uipath-maestro-bpmn/.maintenance/check-plugin-pairs.sh +0 -39
  474. package/skills/uipath-maestro-bpmn/.maintenance/check-real-pack.sh +0 -79
  475. package/skills/uipath-maestro-bpmn/.maintenance/check-template.sh +0 -42
  476. package/skills/uipath-maestro-bpmn/.maintenance/check-uip-commands.sh +0 -266
  477. package/skills/uipath-maestro-bpmn/.maintenance/check-validation-fixtures.py +0 -1255
  478. package/skills/uipath-maestro-bpmn/.maintenance/check-validation-fixtures.sh +0 -8
  479. package/skills/uipath-maestro-bpmn/fixtures/validation/README.md +0 -94
  480. package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/agent-invocation.bpmn +0 -62
  481. package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/bindings_v2.json +0 -37
  482. package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/entry-points.json +0 -21
  483. package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/operate.json +0 -9
  484. package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/package-descriptor.json +0 -10
  485. package/skills/uipath-maestro-bpmn/fixtures/validation/agent-invocation/project.uiproj +0 -7
  486. package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/bindings_v2.json +0 -68
  487. package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/contract-variants.bpmn +0 -270
  488. package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/entry-points.json +0 -25
  489. package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/operate.json +0 -9
  490. package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/package-descriptor.json +0 -10
  491. package/skills/uipath-maestro-bpmn/fixtures/validation/contract-variants/project.uiproj +0 -7
  492. package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/bindings_v2.json +0 -19
  493. package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/entry-points.json +0 -25
  494. package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/gateway-boundary-error.bpmn +0 -91
  495. package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/operate.json +0 -9
  496. package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/package-descriptor.json +0 -10
  497. package/skills/uipath-maestro-bpmn/fixtures/validation/gateway-boundary-error/project.uiproj +0 -7
  498. package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/bindings_v2.json +0 -4
  499. package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/entry-points.json +0 -25
  500. package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/imported-brownfield-preservation.bpmn +0 -63
  501. package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/operate.json +0 -9
  502. package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/package-descriptor.json +0 -10
  503. package/skills/uipath-maestro-bpmn/fixtures/validation/imported-brownfield-preservation/project.uiproj +0 -7
  504. package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/bindings_v2.json +0 -52
  505. package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/entry-points.json +0 -21
  506. package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/integration-service-enriched.bpmn +0 -65
  507. package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/operate.json +0 -9
  508. package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/package-descriptor.json +0 -10
  509. package/skills/uipath-maestro-bpmn/fixtures/validation/integration-service-enriched/project.uiproj +0 -7
  510. package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/bindings_v2.json +0 -4
  511. package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/entry-points.json +0 -25
  512. package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/linear-process.bpmn +0 -55
  513. package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/operate.json +0 -9
  514. package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/package-descriptor.json +0 -10
  515. package/skills/uipath-maestro-bpmn/fixtures/validation/linear-process/project.uiproj +0 -7
  516. package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/bindings_v2.json +0 -20
  517. package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/entry-points.json +0 -17
  518. package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/operate.json +0 -9
  519. package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/package-descriptor.json +0 -10
  520. package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/project.uiproj +0 -7
  521. package/skills/uipath-maestro-bpmn/fixtures/validation/registry-coverage-matrix/registry-coverage-matrix.bpmn +0 -207
  522. package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/bindings_v2.json +0 -4
  523. package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/entry-points.json +0 -33
  524. package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/operate.json +0 -9
  525. package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/package-descriptor.json +0 -10
  526. package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/project.uiproj +0 -7
  527. package/skills/uipath-maestro-bpmn/fixtures/validation/subprocess-multi-instance/subprocess-multi-instance.bpmn +0 -94
  528. package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/bindings_v2.json +0 -124
  529. package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/entry-points.json +0 -25
  530. package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/operate.json +0 -9
  531. package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/package-descriptor.json +0 -10
  532. package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/project.uiproj +0 -7
  533. package/skills/uipath-maestro-bpmn/fixtures/validation/wrapper-family-contract/wrapper-family-contract.bpmn +0 -151
  534. package/skills/uipath-maestro-bpmn/references/author/CAPABILITY.md +0 -141
  535. package/skills/uipath-maestro-bpmn/references/author/references/brownfield.md +0 -48
  536. package/skills/uipath-maestro-bpmn/references/author/references/editing-operations.md +0 -75
  537. package/skills/uipath-maestro-bpmn/references/author/references/greenfield.md +0 -41
  538. package/skills/uipath-maestro-bpmn/references/author/references/planning-arch.md +0 -82
  539. package/skills/uipath-maestro-bpmn/references/author/references/planning-impl.md +0 -104
  540. package/skills/uipath-maestro-bpmn/references/author/references/plugins/agents/impl.md +0 -34
  541. package/skills/uipath-maestro-bpmn/references/author/references/plugins/agents/planning.md +0 -38
  542. package/skills/uipath-maestro-bpmn/references/author/references/plugins/api-workflows/impl.md +0 -37
  543. package/skills/uipath-maestro-bpmn/references/author/references/plugins/api-workflows/planning.md +0 -28
  544. package/skills/uipath-maestro-bpmn/references/author/references/plugins/business-rules/impl.md +0 -36
  545. package/skills/uipath-maestro-bpmn/references/author/references/plugins/business-rules/planning.md +0 -29
  546. package/skills/uipath-maestro-bpmn/references/author/references/plugins/call-activity-subprocess/impl.md +0 -67
  547. package/skills/uipath-maestro-bpmn/references/author/references/plugins/call-activity-subprocess/planning.md +0 -29
  548. package/skills/uipath-maestro-bpmn/references/author/references/plugins/connectors/impl.md +0 -29
  549. package/skills/uipath-maestro-bpmn/references/author/references/plugins/connectors/planning.md +0 -33
  550. package/skills/uipath-maestro-bpmn/references/author/references/plugins/gateways/impl.md +0 -32
  551. package/skills/uipath-maestro-bpmn/references/author/references/plugins/gateways/planning.md +0 -34
  552. package/skills/uipath-maestro-bpmn/references/author/references/plugins/hitl/impl.md +0 -42
  553. package/skills/uipath-maestro-bpmn/references/author/references/plugins/hitl/planning.md +0 -30
  554. package/skills/uipath-maestro-bpmn/references/author/references/plugins/integration-service/impl.md +0 -134
  555. package/skills/uipath-maestro-bpmn/references/author/references/plugins/integration-service/planning.md +0 -67
  556. package/skills/uipath-maestro-bpmn/references/author/references/plugins/multi-instance/impl.md +0 -50
  557. package/skills/uipath-maestro-bpmn/references/author/references/plugins/multi-instance/planning.md +0 -29
  558. package/skills/uipath-maestro-bpmn/references/author/references/plugins/queues/impl.md +0 -29
  559. package/skills/uipath-maestro-bpmn/references/author/references/plugins/queues/planning.md +0 -29
  560. package/skills/uipath-maestro-bpmn/references/author/references/plugins/rpa-jobs/impl.md +0 -35
  561. package/skills/uipath-maestro-bpmn/references/author/references/plugins/rpa-jobs/planning.md +0 -29
  562. package/skills/uipath-maestro-bpmn/references/author/references/plugins/script/impl.md +0 -118
  563. package/skills/uipath-maestro-bpmn/references/author/references/plugins/script/planning.md +0 -30
  564. package/skills/uipath-maestro-bpmn/references/author/references/plugins/sequence-flows/impl.md +0 -30
  565. package/skills/uipath-maestro-bpmn/references/author/references/plugins/sequence-flows/planning.md +0 -30
  566. package/skills/uipath-maestro-bpmn/references/author/references/plugins/service-tasks/impl.md +0 -33
  567. package/skills/uipath-maestro-bpmn/references/author/references/plugins/service-tasks/planning.md +0 -31
  568. package/skills/uipath-maestro-bpmn/references/author/references/plugins/signals/impl.md +0 -33
  569. package/skills/uipath-maestro-bpmn/references/author/references/plugins/signals/planning.md +0 -46
  570. package/skills/uipath-maestro-bpmn/references/author/references/plugins/start-end-events/impl.md +0 -59
  571. package/skills/uipath-maestro-bpmn/references/author/references/plugins/start-end-events/planning.md +0 -37
  572. package/skills/uipath-maestro-bpmn/references/author/references/plugins/waits-triggers/impl.md +0 -40
  573. package/skills/uipath-maestro-bpmn/references/author/references/plugins/waits-triggers/planning.md +0 -34
  574. package/skills/uipath-maestro-bpmn/references/author/references/supported-elements.md +0 -123
  575. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/README.md +0 -29
  576. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/agent-job.md +0 -36
  577. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/api-workflow.md +0 -29
  578. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/business-rule.md +0 -18
  579. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/call-activity.md +0 -56
  580. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/hitl.md +0 -17
  581. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/http-request.md +0 -119
  582. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/queue.md +0 -21
  583. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/rpa-job.md +0 -23
  584. package/skills/uipath-maestro-bpmn/references/author/references/validation.md +0 -118
  585. package/skills/uipath-maestro-bpmn/references/shared/bpmn-xml-contract.md +0 -197
  586. package/skills/uipath-maestro-bpmn/references/shared/cli-conventions.md +0 -46
  587. package/skills/uipath-maestro-bpmn/references/shared/error-handling.md +0 -82
  588. package/skills/uipath-maestro-bpmn/references/shared/variables-bindings-expressions.md +0 -150
  589. package/skills/uipath-maestro-bpmn/references/shared/wrapper-shells.md +0 -554
  590. /package/skills/uipath-maestro-bpmn/references/{shared/expression-authoring.md → expression-authoring.md} +0 -0
  591. /package/skills/uipath-maestro-bpmn/references/{shared/public-safety.md → public-safety.md} +0 -0
  592. /package/{agents → skills/uipath-rpa/agents}/uipath-project-discovery-agent.md +0 -0
@@ -0,0 +1,97 @@
1
+ ---
2
+ confidence: medium
3
+ ---
4
+
5
+ # Execute Non Query Failures
6
+
7
+ ## Context
8
+
9
+ A `UiPath.Database.Activities` `Execute Non Query` (`ExecuteNonQuery`) activity runs a data-modifying statement — `INSERT` / `UPDATE` / `DELETE` / DDL (`CREATE`/`ALTER`) — or a stored procedure, and returns the affected-row count in its `AffectedRecords` output (`Int32`). Like `Execute Query` it takes a connection via `ExistingDbConnection` (from `Connect to Database` / `Start Transaction`) or an inline `ConnectionString` + `ProviderName`, plus `Sql`, `CommandType` (`Text` / `StoredProcedure`), `Parameters`, and `TimeoutMS`. Failures cluster around four surfaces: stored-procedure output-parameter sizing, statement/parameter construction, an empty command, and missing/mismatched database drivers.
10
+
11
+ Rule out the wrong-activity case first: **`Execute Non Query` is for modifications; `Execute Query` is for `SELECT`** (→ `DataTable`). Using `Execute Non Query` to pull data, or `Execute Query` to modify, is a category error — see [execute-query-failures.md](./execute-query-failures.md) branch 7.
12
+
13
+ What this looks like — Execute Non Query faults surface as one of these signatures:
14
+
15
+ - `The Size property has an invalid size of 0` (from the ODBC/ADO.NET layer) — branch 1.
16
+ - `Execute Non Query: A database error occurred` wrapping a provider syntax error (`Incorrect syntax near ...`, `ORA-…`), or a type/cast error mapping a value into a column — branch 2.
17
+ - `CommandText property has not been initialized` (ADO.NET) — branch 3.
18
+ - `Failed to load library (ErrorCode: 126)` / `System.DllNotFoundException` / a provider that "is not registered" or fails to load — branch 4.
19
+
20
+ What can cause it (cause-branches — pick the right one from evidence):
21
+
22
+ 1. **Stored-procedure output parameter with `Size = 0` (ODBC)** — a stored procedure invoked with `CommandType: StoredProcedure` that has an `Output` / `InputOutput` parameter, run through an ODBC driver (e.g. SQL Server over ODBC). The driver cannot infer the memory footprint of the returned value when the parameter's `Size` is left at `0`, so it throws `The Size property has an invalid size of 0`.
23
+ 2. **Unsafe SQL construction / parameter mapping / wrong type** — the `Sql` is built by concatenating values (`"INSERT INTO Users VALUES ('" + strName + "')"`), which breaks on quotes/symbols and is a SQL-injection vector; or a parameter's `Type`/`Direction` is wrong; or the workflow tries to push a whole `DataTable` into a single column. The provider rejects the statement with a syntax or type/cast error wrapped as `A database error occurred`.
24
+ 3. **Empty `Sql` (`CommandText property has not been initialized`)** — the `Sql` property is blank, an expression that resolved to `""`, or a variable that was never set / went out of scope. ADO.NET refuses to execute a command with no `CommandText`.
25
+ 4. **Driver / client library not loadable (`ErrorCode: 126`)** — the Robot host lacks the database driver or client the connection string needs (Oracle Client, an OLE DB provider, a specific ODBC system driver), or the installed driver's bitness does not match the process. The native load fails with `Failed to load library (ErrorCode: 126)` / `DllNotFoundException`.
26
+
27
+ What to look for:
28
+
29
+ - **The exception text** — first signal, maps directly to a branch per the list above. Read the **inner** provider/driver exception, not just the UiPath `A database error occurred` wrapper.
30
+ - **`CommandType` and the `Parameters` collection** — whether the statement is a `StoredProcedure` with `Output`/`InputOutput` parameters, and each parameter's `Name`, `Direction`, `Type`, `Value`, and **`Size`**. Branch 1 is specifically an output parameter with `Size = 0` over ODBC.
31
+ - **How `Sql` is constructed** — literal vs concatenation vs an expression that can resolve empty (branches 2 and 3).
32
+ - **`ProviderName` + driver inventory on the Robot host** — the provider invariant name and whether the matching driver/client is installed at the right bitness (branch 4).
33
+ - **Connection provenance** — inline vs `ExistingDbConnection`, and whether that connection is live (a closed/expired/null connection routes to [execute-query-failures.md](./execute-query-failures.md) branch 1).
34
+ - **`UiPath.Database.Activities` version** — branch 1's ODBC sizing bug was patched in older releases (historically 1.4.0+); branch 4 driver behaviour is also version/host-sensitive.
35
+
36
+ ## Investigation
37
+
38
+ Go in this order — cheaper checks first.
39
+
40
+ 1. **Capture the exact error, activity, and configuration.** 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 `Execute Non Query` node — connection source, `Sql`, `CommandType`, the `Parameters` collection (per-parameter `Direction`/`Type`/`Size`), and `ProviderName`. From job logs (`uip or jobs logs <key> --output json`): the resolved values at the failing step.
41
+
42
+ 2. **Branch the diagnostic on the signature.**
43
+ - `The Size property has an invalid size of 0` → branch 1; go to step 3.
44
+ - `A database error occurred` wrapping a syntax / type-cast error → branch 2; go to step 4.
45
+ - `CommandText property has not been initialized` → branch 3; go to step 5.
46
+ - `Failed to load library (ErrorCode: 126)` / `DllNotFoundException` / provider load failure → branch 4; go to step 6.
47
+
48
+ 3. **Confirm branch 1 (output-parameter size).** Confirm `CommandType: StoredProcedure`, an `Output`/`InputOutput` parameter, and an ODBC `ProviderName`. Check that parameter's `Size` — `0` (unset) confirms the branch. Note the `UiPath.Database.Activities` version.
49
+
50
+ 4. **Confirm branch 2 (SQL construction / parameters).** Read the inner provider message (it names the offending token or type). In source, check whether `Sql` is concatenated, whether any parameter's `Type`/`Direction` mismatches the column, and whether a `DataTable` is being mapped into a scalar column.
51
+
52
+ 5. **Confirm branch 3 (empty Sql).** Inspect the `Sql` property. If literal, confirm it is non-empty. If an expression, log the resolved value immediately before the activity (`Log Message Level=Info Message=$"SQL: '{sqlText}'"`) and rerun — an empty/`Nothing` result confirms the branch.
53
+
54
+ 6. **Confirm branch 4 (driver load).** Read `ProviderName` and the connection string's driver/client requirement. Check the Robot host for the matching driver/client and its bitness (a **Windows** project is a 64-bit process and needs the 64-bit driver). `ErrorCode: 126` ("module not found") with the required client absent or wrong-bitness confirms the branch. This is the same driver/bitness family as [connect-to-database-failures.md](./connect-to-database-failures.md) branch 2.
55
+
56
+ The root cause must name **which of the four surfaces** the failure maps to, with the specific evidence: the inner exception, the `CommandType`/`Parameters`/`Sql`/`ProviderName` values, and (branches 1/4) the package version and host driver inventory. A generic "Execute Non Query failed" is not a confirmed finding.
57
+
58
+ ## Resolution
59
+
60
+ Map the branch identified in Investigation to the fix:
61
+
62
+ - **Branch 1 — Output parameter `Size = 0` (ODBC stored proc):**
63
+ - In the `Parameters` collection, set the output parameter's `Size` to the column's maximum (e.g. `50` for `VARCHAR(50)`, `4` for an `INT`). The driver needs an explicit buffer size for the returned value.
64
+ - Alternatively / additionally, update `UiPath.Database.Activities` to a version where the ODBC sizing bug was patched (historically `1.4.0`+); current packages include the fix.
65
+
66
+ - **Branch 2 — SQL construction / parameter mapping:**
67
+ - Do **not** concatenate values into the `Sql`. Use named parameters: `INSERT INTO Users (Name, Age) VALUES (@ParamName, @ParamAge)`, and map each in the `Parameters` collection (`Name: @ParamName`, `Direction: In`, `Type: String`, `Value: strName`). The provider handles quoting/typing and the injection risk goes away.
68
+ - Match each parameter's `Type`/`Direction` to its column. Do not map a `DataTable` into a scalar column.
69
+ - To write an entire `DataTable` to a table in one shot, use **Bulk Insert** or **Bulk Update Database** (both in `UiPath.Database.Activities`), not a per-row `Execute Non Query`.
70
+
71
+ - **Branch 3 — Empty `Sql`:**
72
+ - Ensure the `Sql` property contains a valid non-empty statement. For expression-built SQL, guard against empty (`If` skip when blank) and log the resolved value before the activity. Fix the upstream assignment / scope so the variable is populated when the activity runs.
73
+
74
+ - **Branch 4 — Driver / client library not loadable:**
75
+ - Install the database driver/client the connection string requires (Oracle Client, the OLE DB provider, the ODBC system driver) on every Robot host, at the **bitness matching the process** (64-bit for a **Windows** project — not Office's or the dev machine's bitness).
76
+ - Verify connectivity with **Configure Connection** on the activity from the host. For the OLE-DB-provider-not-registered variant, see [connect-to-database-failures.md](./connect-to-database-failures.md) branch 2.
77
+
78
+ ## Anti-patterns (what NOT to do)
79
+
80
+ - **"Concatenate the values into the INSERT/UPDATE string."** (`"INSERT INTO Users VALUES ('" + strName + "')"`) — breaks on quotes/symbols, throws branch-2 syntax errors, and is a SQL-injection hole. Always use named parameters via the `Parameters` collection.
81
+ - **"Loop Execute Non Query once per DataTable row."** For bulk writes this is slow and error-prone; use **Bulk Insert** / **Bulk Update Database**. A per-row loop also tends to surface branch-2 type mismatches one row at a time.
82
+ - **"Wrap Execute Non Query in a Try Catch and continue on error."** A bare catch that swallows the exception leaves the database half-modified and the workflow proceeding as if the write succeeded — worse than failing loudly. Use Try-Catch only with a real recovery path (roll back the transaction, mark the queue item Failed, re-throw a domain exception), and prefer `Start Transaction` so a mid-batch failure rolls back cleanly.
83
+ - **"Use Execute Non Query to read data."** It returns an affected-row count, not rows. For `SELECT`, use `Execute Query` (→ `DataTable`).
84
+
85
+ ## Prevention (cross-branch)
86
+
87
+ - Parameterize every statement with named parameters; never concatenate. This prevents branch 2 and closes the injection risk.
88
+ - For stored procedures with output parameters over ODBC, always set each output parameter's `Size` explicitly (branch 1).
89
+ - Choose the activity by intent: `Execute Non Query` for modifications, `Execute Query` for `SELECT`, **Bulk Insert/Update** for whole-`DataTable` writes.
90
+ - Provision Robot hosts with the required DB driver/client at the correct bitness, and verify with Configure Connection during host setup (branch 4).
91
+ - Wrap multi-statement modifications in `Start Transaction` so a failure rolls back rather than leaving partial writes.
92
+
93
+ ## Related
94
+
95
+ - [execute-query-failures.md](./execute-query-failures.md) — the read-side activity; shares the connection (null/expired), SQL-syntax, and timeout surfaces, and owns the wrong-activity branch (Execute Query vs Execute Non Query).
96
+ - [connect-to-database-failures.md](./connect-to-database-failures.md) — branch 4 here (driver/bitness) is the same family as that playbook's provider-not-registered branch.
97
+ - [`../overview.md`](../overview.md) — package connection model and the Bulk Insert / Bulk Update Database activities.
@@ -0,0 +1,134 @@
1
+ ---
2
+ confidence: medium
3
+ ---
4
+
5
+ # Execute Query Failures
6
+
7
+ ## Context
8
+
9
+ A `UiPath.Database.Activities` `Execute Query` activity runs a SQL `SELECT` against a database and returns the result set as a `DataTable`. It needs a live connection, supplied one of two ways: an `ExistingDbConnection` produced by a preceding `Connect to Database` activity (or a `Start Transaction` block), or an inline `ConnectionString` + `ProviderName` set on the activity itself. Failures originate at one of seven surfaces: connection handle (null / expired / out of scope), driver provider (post-migration keyword/driver mismatch), SQL text (syntax error or unsafe concatenation), property misplacement (query pasted into the connection-string field), command timeout, CLR-level crash (oversized result set or incompatible native provider), or wrong activity for the statement type.
10
+
11
+ What this looks like — Execute Query faults surface as one of these signatures:
12
+
13
+ - `Object reference not set to an instance of an object` (`System.NullReferenceException`) raised at the activity — branch 1.
14
+ - `Keyword not supported: '<keyword>'` / `System.ArgumentException` from the connection-string parser, or a SqlClient native crash, typically right after a Windows-Legacy → Windows project migration — branch 2.
15
+ - `Execute Query: A database error occurred` wrapping a provider exception with `Incorrect syntax near ...` (SQL Server), `ORA-00900: invalid SQL statement` (Oracle), or `You have an error in your SQL syntax` (MySQL) — branch 3.
16
+ - A provider error naming a database that does not exist, or a connection-string parse failure where the offending value is clearly SQL text (`SELECT ...`) — branch 4.
17
+ - `Execute Query: Timeout expired` / `... Timeout period elapsed prior to completion of the operation` — branch 5.
18
+ - The job terminates with exit code `0xE0434352` and no clean activity-level exception in the workflow log — branch 6.
19
+ - An `Execute Non Query` result assigned to a `DataTable` (design-time/cast error), or `Execute Query` used for an `INSERT`/`UPDATE`/`DELETE` (runs but returns an empty/unexpected `DataTable`) — branch 7.
20
+
21
+ What can cause it (cause-branches — pick the right one from evidence):
22
+
23
+ 1. **Null / expired / out-of-scope connection** — the `DatabaseConnection` passed to `Execute Query` is `Nothing`. Causes: the `Connect to Database` / `Start Transaction` activity did not run before `Execute Query` (wrong ordering, or it sits on a branch that was skipped); the connect activity's output variable does not match the `ExistingDbConnection` input on the query (different variable, or never wired); the connection variable is scoped to an inner `Sequence` and is out of scope where `Execute Query` runs; or the connection was opened, used, and disposed (e.g., the `Connect` was inside a `Using`/scope that already closed) so the handle is expired.
24
+ 2. **Driver provider mismatch after migration** — surfaces after upgrading the project from **Windows - Legacy** (.NET Framework) to **Windows** (.NET 6+). The legacy `System.Data.SqlClient` provider is not the modern default; connection-string keywords valid under one provider are rejected by the other (`Keyword not supported`). MySQL/other engines need an explicitly installed managed/ODBC driver that the legacy runtime bundled implicitly.
25
+ 3. **SQL syntax error / unsafe concatenation** — the `Sql` text is malformed, or the workflow builds it by concatenating variables into the string (`"... WHERE id = " + myVar`). Concatenation breaks on quotes/types, fails to parse, and is a SQL-injection vector. The provider rejects the statement with its own syntax error, wrapped by UiPath as `A database error occurred`.
26
+ 4. **Query text in the connection-string property** — the SQL statement was pasted into the `ConnectionString` property (or the `Connect` activity's connection field) instead of the `Sql` / query property; or the connection string has unbalanced quotes. The connection-string parser then chokes on the SQL text, often surfacing as a truncated/garbled "database does not exist" because it reads the first token as a database name.
27
+ 5. **Command timeout exceeded** — the query ran longer than the activity's `TimeoutMS` (milliseconds; default `30000` = 30 s). Causes: an un-indexed scan, a lock/blocking on the DB side, or a genuinely large/expensive query. The provider aborts and UiPath surfaces `Timeout expired`.
28
+ 6. **CLR-level crash (`0xE0434352`)** — a low-level managed-runtime fault that bypasses the normal activity exception path. For `Execute Query` the DB-specific triggers are: a result set large enough to exhaust the Robot process memory (materializing millions of rows into a `DataTable`), an incompatible native provider path (notably Oracle `REF CURSOR` handling), or a stale/incompatible `UiPath.Database.Activities` build. `0xE0434352` is the generic .NET unhandled-exception SEH code — it is not DB-specific on its own; the DB context narrows it.
29
+ 7. **Wrong activity for the statement type** — `Execute Query` is for `SELECT` (returns a `DataTable`); `Execute Non Query` is for `INSERT`/`UPDATE`/`DELETE`/DDL (returns the affected-row count in its `AffectedRecords` output, an `Int32`). Using `Execute Query` for a modification returns an empty/meaningless `DataTable` and may error on statements that produce no result set; assigning an `Execute Non Query` `AffectedRecords` result to a `DataTable` fails to compile / casts wrong.
30
+
31
+ What to look for:
32
+
33
+ - **The exception class and message** — first signal, maps directly to a branch per the signature list above. A bare `A database error occurred` always wraps an inner provider exception — read the inner message (it carries the real syntax error or provider code).
34
+ - **How the connection is supplied** — from workflow source: whether `Execute Query` reads an `ExistingDbConnection` variable (and which `Connect`/`Start Transaction` activity produces it) or carries an inline `ConnectionString` + `ProviderName`. Trace the variable's producer and scope. This separates branch 1 (broken wiring/scope) from branches 2/4 (inline config problems).
35
+ - **Project compatibility** — whether the project is **Windows** or **Windows - Legacy**, and whether the failure started immediately after a migration. Load-bearing for branch 2.
36
+ - **The `Sql` value** — literal vs expression; whether it is built by concatenation (branch 3) and whether it actually landed in the `Sql` property rather than the connection field (branch 4).
37
+ - **`TimeoutMS` property** (milliseconds) and the DB-side duration of the query — branch 5.
38
+ - **Result-set size and provider** — expected row count, and whether the engine is Oracle with `REF CURSOR` output — branch 6.
39
+ - **`UiPath.Database.Activities` package version** — branches 2 and 6 are version-sensitive.
40
+
41
+ ## Investigation
42
+
43
+ Go in this order — cheaper checks first.
44
+
45
+ 1. **Capture the exact error, activity, and configuration.** From `uip or jobs get <job-key> --output json` → `Info`: the exception class and full message, *including the inner exception* (the provider's real error). From workflow source (`.xaml`): the `Execute Query` node — whether it uses `ExistingDbConnection` or inline `ConnectionString`/`ProviderName`, the literal `Sql` text or bound expression, and `TimeoutMS`. From job logs (`uip or jobs logs <key> --output json`): Trace lines showing the resolved connection state and the activity that ran immediately before.
46
+
47
+ 2. **Branch the diagnostic on the signature.**
48
+ - `NullReferenceException` at the activity → branch 1; go to step 3.
49
+ - `Keyword not supported` / connection-string `ArgumentException` / SqlClient crash, post-migration → branch 2; go to step 4.
50
+ - `A database error occurred` wrapping a provider syntax error → branch 3; go to step 5.
51
+ - Connection error naming a non-existent database / SQL-looking text in the connection string → branch 4; go to step 6.
52
+ - `Timeout expired` → branch 5; go to step 7.
53
+ - Job exit `0xE0434352`, no activity-level exception → branch 6; go to step 8.
54
+ - Modification statement in `Execute Query`, or `Execute Non Query` result bound to a `DataTable` → branch 7; go to step 9.
55
+
56
+ 3. **Confirm branch 1 (null/out-of-scope connection).** In the workflow source, trace the variable bound to the query's `ExistingDbConnection` back to its producer:
57
+ - Confirm a `Connect to Database` or `Start Transaction` activity assigns that exact variable, and that it executes on the same path *before* `Execute Query` (not on a sibling `If`/`Catch` branch that was skipped).
58
+ - Confirm variable **scope**: the connection variable must be declared at or above the scope containing `Execute Query`. A connection created inside a nested `Sequence` is `Nothing` once execution leaves it.
59
+ - Confirm the connection was not already disposed — a `Connect` placed inside a scope/`Using` that closed before the query leaves an expired handle.
60
+
61
+ 4. **Confirm branch 2 (provider mismatch).** Check the project compatibility (`project.json` → `targetFramework`/`Windows` vs `Windows-Legacy`) and whether the failure began right after a migration. Inspect the `ProviderName` and `ConnectionString` on the `Connect`/`Execute Query` activity. SQL Server still on `System.Data.SqlClient` after a move to **Windows** is the canonical case; for MySQL, confirm the configured provider and whether the matching ODBC/managed driver is installed on the Robot host.
62
+
63
+ 5. **Confirm branch 3 (SQL syntax / concatenation).** Read the inner provider message — it names the syntax error and (often) the offending token. In the source, check whether `Sql` is a literal or built by string concatenation. If concatenation, log the fully resolved statement immediately before the activity (`Log Message Level=Info Message=$"SQL: {sqlText}"`) and rerun — the resolved text usually shows the broken quoting or a value injected mid-keyword.
64
+
65
+ 6. **Confirm branch 4 (query in the wrong property).** Inspect the activity properties: the `ConnectionString` field should contain `Server=...;Database=...;...` (or a provider DSN), and the `Sql` field should contain the `SELECT`. If the `SELECT` text is in the connection field, or the connection string has unbalanced quotes, branch 4 is confirmed.
66
+
67
+ 7. **Confirm branch 5 (timeout).** Read `TimeoutMS` (milliseconds; default `30000` = 30 s). Time the query independently against the DB (e.g., run it in the DB client) to learn its real duration, and check for blocking/locks at the failure time. Distinguish a query that is *legitimately* slow (needs a bigger timeout) from a *runaway* query (needs an index or a narrower result set) — see Resolution.
68
+
69
+ 8. **Confirm branch 6 (CLR crash).** `0xE0434352` is a process-level exit, so correlate the job's last activity (job logs) with the `Execute Query`. Estimate the result-set size the query would materialize, check whether the engine is Oracle returning a `REF CURSOR`, and read the `UiPath.Database.Activities` version. A multi-million-row `SELECT *` into a `DataTable` on a memory-constrained Robot is the prototypical trigger.
70
+
71
+ 9. **Confirm branch 7 (wrong activity).** Check the statement verb against the activity: `SELECT` → `Execute Query`; `INSERT`/`UPDATE`/`DELETE`/DDL → `Execute Non Query`. Check the output binding: an `Execute Query` output must be a `DataTable`; an `Execute Non Query` exposes an `AffectedRecords` output of type `Int32`.
72
+
73
+ The root cause must name **which of the seven surfaces** the failure maps to, with the specific evidence: the inner provider exception, how the connection is supplied and scoped, the `Sql`/`ConnectionString`/`ProviderName`/`TimeoutMS` values, and (for branches 2/6) the project compatibility and package version. A generic "Execute Query failed" is not a confirmed finding.
74
+
75
+ ## Resolution
76
+
77
+ Map the branch identified in Investigation to the fix:
78
+
79
+ - **Branch 1 — Null / out-of-scope connection:**
80
+ - Ensure a `Connect to Database` (or `Start Transaction`) activity runs on the same path **before** `Execute Query`.
81
+ - Wire the connect activity's output variable to the query's `ExistingDbConnection` input — same variable, exact match.
82
+ - Declare the connection variable at a scope that encloses both activities. Do not create it inside a nested `Sequence` that `Execute Query` sits outside of.
83
+ - If the connection lives in a scope/`Using` that closes before the query, restructure so the query runs inside that scope, or open a connection that outlives it.
84
+
85
+ - **Branch 2 — Driver provider mismatch after migration:**
86
+ - For SQL Server on a **Windows** (.NET 6+) project, switch the provider from `System.Data.SqlClient` to `Microsoft.Data.SqlClient` in the activity's provider/connection configuration, and adjust any connection-string keyword the new provider rejects.
87
+ - For MySQL, use the appropriate driver (e.g., `System.Data.Odbc` with the MySQL ODBC driver installed via the Windows ODBC Data Source Administrator on the Robot host, or the MySQL managed provider) and set the `ProviderName` accordingly.
88
+ - Verify the chosen provider's driver is actually installed on every Robot host that runs the process — not just the developer machine.
89
+
90
+ - **Branch 3 — SQL syntax / unsafe concatenation:**
91
+ - Do **not** build SQL by concatenating variables into the statement (`"... WHERE id = " + myVar`) — it breaks parsing and is a SQL-injection risk.
92
+ - Use the activity's **Parameters** collection: reference a named parameter in the `Sql` (`SELECT * FROM t WHERE id = @id`) and map the UiPath variable to `@id` in the Parameters property. The provider handles quoting and typing.
93
+ - Fix any genuine syntax error reported by the inner provider message (the engine names the offending token).
94
+
95
+ - **Branch 4 — Query in the wrong property:**
96
+ - Put the connection string (`Server=...;Database=...;...` or DSN) in the `ConnectionString` property, and the `SELECT` in the `Sql` / query property. They are different fields — do not cross them.
97
+ - Balance any quotes in the connection string; a stray quote truncates the parsed value and produces the misleading "database does not exist".
98
+
99
+ - **Branch 5 — Command timeout exceeded:**
100
+ - If the query is *legitimately* long-running, raise `TimeoutMS` on the activity to a value above its worst observed duration. The property is in **milliseconds**: `60000` = 60 s (the default is `30000` = 30 s).
101
+ - If the query is a *runaway* (full scan, missing index), fix the root cause on the DB side — add an index, narrow the `WHERE`, or reduce the columns/rows — rather than only enlarging the timeout. Increasing the timeout on a runaway query just delays the same failure and ties up the Robot longer.
102
+
103
+ - **Branch 6 — CLR crash (`0xE0434352`):**
104
+ - Bound the result set in SQL so it cannot exhaust memory: `SELECT TOP n ...` (SQL Server), `... WHERE ROWNUM <= n` / `FETCH FIRST n ROWS ONLY` (Oracle), `... LIMIT n` (MySQL/Postgres). Page through large data instead of materializing it all into one `DataTable`.
105
+ - For Oracle `REF CURSOR` output, verify the activity/version supports the cursor shape; update `UiPath.Database.Activities` to the latest stable version via **Manage Packages** if the crash is in the provider path.
106
+ - If the crash persists after bounding the data and updating the package, capture the Robot process dump and escalate — a reproducible `0xE0434352` inside the provider is a package/driver bug, not a workflow misconfiguration.
107
+
108
+ - **Branch 7 — Wrong activity for the statement type:**
109
+ - Use `Execute Query` only for `SELECT` (output → `DataTable`).
110
+ - Use `Execute Non Query` for `INSERT`/`UPDATE`/`DELETE`/DDL (output → `AffectedRecords`, an `Int32` row count). Do not assign its result to a `DataTable`.
111
+ - For a stored procedure that both modifies and returns rows, pick the activity that matches the result you consume, and confirm the output type binding compiles.
112
+
113
+ ## Anti-patterns (what NOT to do)
114
+
115
+ Common advice for Execute Query failures contains workarounds that hide bugs rather than fix them. The agent should NOT recommend any of these as a primary resolution.
116
+
117
+ - **"Concatenate the variable straight into the SQL string."** (`"SELECT * FROM t WHERE id = " + myVar`) — breaks on quotes and non-string types, produces branch-3 syntax errors, and is a SQL-injection vulnerability. Always use named parameters (`@id`) mapped via the Parameters property.
118
+ - **"Wrap Execute Query in a Try Catch and continue on error."** A bare catch that logs and swallows the exception turns a failed query into a silent empty `DataTable`; downstream activities then process zero rows as if the query succeeded, producing wrong results that are harder to diagnose than the original fault. Use Try-Catch only with a real recovery path (retry the transient connection, mark the queue item Failed, re-throw a domain exception).
119
+ - **"Just set the timeout to a huge value."** Enlarging `TimeoutMS` is correct only for a query that is genuinely long-running. For a runaway/un-indexed query (branch 5) it masks the real problem, holds the Robot hostage for minutes, and the query still eventually fails or degrades the DB. Fix the query/index instead.
120
+ - **"Update the package and hope."** Updating `UiPath.Database.Activities` resolves specific provider-path bugs (branch 2, branch 6), but is not a remedy for connection-wiring (branch 1), SQL syntax (branch 3), or property-misplacement (branch 4) failures. Confirm the branch first.
121
+
122
+ ## Prevention (cross-branch)
123
+
124
+ - Always supply `Execute Query` from a `Connect to Database` / `Start Transaction` whose connection variable is scoped to enclose the query; verify the wiring at design time.
125
+ - Parameterize every query with named parameters — never concatenate. This prevents branch 3 and closes the injection risk in one move.
126
+ - After migrating a project from **Windows - Legacy** to **Windows**, audit every Database activity's `ProviderName`/`ConnectionString` and confirm the matching driver is installed on all Robot hosts (branch 2).
127
+ - Bound result sets in SQL (`TOP`/`ROWNUM`/`FETCH FIRST`/`LIMIT`) for any query that could return large data, so a data-volume spike cannot crash the Robot (branch 6).
128
+ - Choose the activity by statement verb up front — `Execute Query` for `SELECT`, `Execute Non Query` for modifications — and bind the output to the matching type (branch 7).
129
+ - Pin and track the `UiPath.Database.Activities` version across environments so version-sensitive failures (branches 2, 6) reproduce consistently rather than differing dev-vs-prod.
130
+
131
+ ## Related
132
+
133
+ - `Execute Non Query` failures share the connection (branch 1), provider (branch 2), and syntax (branch 3) surfaces — the diagnostic for those branches is identical; only the statement verb and output type differ (branch 7).
134
+ - For job exit code `0xE0434352` originating outside a Database activity, treat it as a generic CLR-crash investigation (memory, native dependency, or package incompatibility) rather than a SQL problem.
@@ -0,0 +1,94 @@
1
+ ---
2
+ confidence: medium
3
+ ---
4
+
5
+ # Start Transaction Failures
6
+
7
+ ## Context
8
+
9
+ A `UiPath.Database.Activities` `Start Transaction` (`DatabaseTransaction`) activity is a **scope**: it opens a connection from a `ConnectionString` + `ProviderName`, begins a database transaction, runs the child activities in its body under that single transaction, and on normal scope exit **commits** — or, when an exception propagates out of the scope, **rolls back**. It outputs a `DatabaseConnection` that every child data activity (`Execute Query`, `Execute Non Query`, `Run Command`, bulk activities) must consume via its `ExistingDbConnection` input so the work is enrolled in the transaction.
10
+
11
+ Start Transaction shares the connection/provider surface with `Connect to Database` (see [connect-to-database-failures.md](./connect-to-database-failures.md)) and the statement surface with the data activities (see [execute-query-failures.md](./execute-query-failures.md) / [execute-non-query-failures.md](./execute-non-query-failures.md)). What is **specific** to Start Transaction is the commit/rollback lifecycle and the requirement to thread its output connection into every child — that is where its distinct failure modes live. SQL-syntax, parameter, and command-timeout faults raised by a child statement are not transaction bugs; route those to the data-activity playbooks.
12
+
13
+ What this looks like — Start Transaction faults surface as one of these signatures:
14
+
15
+ - Job reports **Success**, but the database is unchanged (or partially changed) and a child activity's error never surfaced — the transaction did not roll back or re-raise. The most visible symptom is downstream logic proceeding on data that was never committed — branch 1.
16
+ - Job reports **Success**, but **none** of the child activities ran — the transaction body was skipped with no error and no logs from inside the scope — branch 2.
17
+ - `The type initializer for 'Microsoft.Data.SqlClient.SqlConnection' threw an exception` (or another provider type-initializer crash), or a design-time validation/compile error that the `DatabaseConnection` type is **missing / unresolvable**, appearing right after a **Windows - Legacy → Windows** migration — branch 3.
18
+ - A child `Execute Query` / `Execute Non Query` faults with `Object reference not set to an instance of an object` (null connection) or an instant `Timeout expired`, or the writes succeed but are **not transactional** (committed independently, so a later failure cannot roll them back) — branch 4.
19
+
20
+ What can cause it (cause-branches — pick the right one from evidence):
21
+
22
+ 1. **Silent success — a failing child does not roll back or re-raise.** On some package versions / configurations, when a child activity inside the scope hits a database error, the `Start Transaction` scope still completes as **Success** instead of rolling back and surfacing the fault. The child exception is absorbed by the scope, so the workflow neither rolls back the partial work nor registers a failure — downstream activities then operate on data that was never committed. This is the most dangerous branch because the job looks green.
23
+ 2. **Transaction scope skips its body (package-version bug).** A specific legacy build — notably `UiPath.Database.Activities` **v1.5.0** — fails to execute the activities inside the `Start Transaction` body at all. The scope enters and exits cleanly with **no error**, but every child database activity is skipped, so nothing is read or written. It is a package defect, not a workflow-configuration problem.
24
+ 3. **Post-migration provider / type breakage (Windows - Legacy → Windows).** After converting the project to the modern .NET runtime, the transaction's connection step crashes — a project still on `System.Data.SqlClient` throws a `Microsoft.Data.SqlClient` type-initializer / execution error — and/or the `DatabaseConnection` variable type appears **missing or unresolvable** at design time (broken type reference after the upgrade). Same provider surface as the connect/query playbooks, reached through the transaction scope.
25
+ 4. **Output connection not propagated to child activities.** The scope produces a `DatabaseConnection`, but a child `Execute Query` / `Execute Non Query` does not consume it: it is left with an empty/`Nothing` connection (→ null-reference, or instant `Timeout expired` while it waits on an unopened/throwaway connection), or it carries its **own** inline `ConnectionString` + `ProviderName` and opens a separate connection — running **outside** the transaction so its writes auto-commit and cannot be rolled back with the rest. Either way the transaction's guarantee is lost.
26
+
27
+ What to look for:
28
+
29
+ - **Job final state vs. database state** — a `Success` job with no committed data (branch 1) or with no child-activity log lines at all (branch 2). Branch 1 has child error evidence that was swallowed; branch 2 has an empty, errorless scope.
30
+ - **`UiPath.Database.Activities` package version** — from `project.json`. `v1.5.0` is the known body-skip build (branch 2); branches 1 and 3 are also version- and runtime-sensitive.
31
+ - **Project compatibility** — `Windows` vs `Windows - Legacy`, and whether the failure began right after a migration. Load-bearing for branch 3.
32
+ - **Child connection wiring** — for every data activity inside the scope, whether `ExistingDbConnection` is bound to the **scope's** output `DatabaseConnection`, or whether the child carries its own inline connection. Load-bearing for branch 4.
33
+ - **Whether child errors are handled** — the presence (or absence) of a `Try Catch` / `Throw` around the in-scope statements, which determines whether a child fault rolls the transaction back (branch 1).
34
+
35
+ ## Investigation
36
+
37
+ Go in this order — cheaper checks first.
38
+
39
+ 1. **Establish job state vs. expected database effect.** From `uip or jobs get <job-key> --output json` → `State` and `Info`, and `uip or jobs logs <key> --output json`: did the job report `Success` or `Faulted`? Did the expected rows actually commit? List the activity log lines emitted from inside the scope. A green job with no committed data — or with no in-scope activity logs — is the primary signal that separates the transaction-specific branches (1, 2) from a normal child-statement fault.
40
+ 2. **Read the package version and project compatibility.** From `project.json`: the pinned `UiPath.Database.Activities` version and `targetFramework` (`Windows` vs `Windows-Legacy`). `v1.5.0` → suspect branch 2; a recent migration to `Windows` → suspect branch 3.
41
+ 3. **Branch the diagnostic on the signature.**
42
+ - `Success` with a swallowed child error and no rollback → branch 1; go to step 4.
43
+ - `Success` with an empty scope (no child ran) on `v1.5.0` → branch 2; go to step 5.
44
+ - SqlClient type-initializer crash, or `DatabaseConnection` type unresolvable, post-migration → branch 3; go to step 6.
45
+ - Child null-connection / instant timeout, or non-transactional writes → branch 4; go to step 7.
46
+ 4. **Confirm branch 1 (silent success / no rollback).** In the workflow source, check whether the in-scope statements are wrapped so a child fault propagates out of the scope. If a child clearly errored (inner provider exception in the logs) yet the job is `Success` and the data is unchanged/partial, the scope absorbed the fault instead of rolling back and re-raising — branch 1 confirmed.
47
+ 5. **Confirm branch 2 (scope skips body).** Confirm the package is `v1.5.0` (or another build with the documented body-skip defect) and that the scope produced **no** in-scope activity logs and **no** error. A clean, instantaneous, empty transaction on that version confirms the package bug rather than a config error.
48
+ 6. **Confirm branch 3 (post-migration provider / type).** Confirm the project is now `Windows` and the failure began at migration. A `Microsoft.Data.SqlClient` type-initializer / SqlClient error on connect, or a design-time error that `DatabaseConnection` (or the activity) is unresolvable, confirms the branch. Cross-check [connect-to-database-failures.md](./connect-to-database-failures.md) branch 4 and [execute-query-failures.md](./execute-query-failures.md) branch 2 — the provider surface is shared.
49
+ 7. **Confirm branch 4 (connection not propagated).** For each child data activity in the scope, read whether `ExistingDbConnection` is the scope's output variable. An empty connection input (→ `Object reference not set` / instant `Timeout expired`) or a child carrying its own inline `ConnectionString`/`ProviderName` (→ writes that committed outside the transaction) confirms the branch.
50
+
51
+ The root cause must name **which of the four surfaces** the failure maps to, with the specific evidence: the job state vs. committed data, the package version, the project compatibility, and the child connection wiring. A generic "the transaction failed" is not a confirmed finding — and a child SQL-syntax or command-timeout error is a data-activity fault, not a transaction fault.
52
+
53
+ ## Resolution
54
+
55
+ Map the branch identified in Investigation to the fix:
56
+
57
+ - **Branch 1 — Silent success / no rollback:**
58
+ - Wrap the in-scope database statements in a `Try Catch`. In the catch, **re-raise** with a `Throw` (or throw a domain exception) so the fault propagates out of the `Start Transaction` scope and triggers the rollback — do not log-and-continue.
59
+ - If a multi-step unit must be all-or-nothing, ensure any child failure leaves the scope via an exception so the transaction rolls back as a whole; only commit (let the scope exit normally) when every step succeeded.
60
+ - For broad coverage across processes, add a **Global Exception Handler** so hidden database exceptions are caught and routed rather than absorbed.
61
+
62
+ - **Branch 2 — Scope skips its body (package bug):**
63
+ - Open **Manage Packages** in Studio and move `UiPath.Database.Activities` off the defective build: upgrade to the latest stable (**v1.7.1** or newer), or downgrade to a known-good older release (**v1.4.0**). This is a package-version fix, not a workflow change.
64
+
65
+ - **Branch 3 — Post-migration provider / type breakage:**
66
+ - For SQL Server on a **Windows** (.NET) project, change the provider from `System.Data.SqlClient` to `Microsoft.Data.SqlClient` on the transaction's connection configuration, and adjust any rejected connection-string keyword (same fix as [execute-query-failures.md](./execute-query-failures.md) branch 2).
67
+ - For MySQL, switch the configuration to `System.Data.Odbc` with the MySQL ODBC driver installed on every Robot host.
68
+ - If the `DatabaseConnection` type (or the activity) shows as missing/unresolvable after the upgrade, close Studio and clear the local cache at `%LOCALAPPDATA%\UiPath\Studio\Cache`, then reopen so the package types re-resolve.
69
+
70
+ - **Branch 4 — Output connection not propagated:**
71
+ - Pass the `Start Transaction` output `DatabaseConnection` into the **`ExistingDbConnection`** (Existing Connection) property of **every** child data activity. Do not give the child its own inline `ConnectionString` + `ProviderName` — that opens a separate connection that runs outside the transaction.
72
+ - Verify the connection variable is declared at the scope of the `Start Transaction` body so every child can see it (a connection scoped to an inner `Sequence` is `Nothing` for siblings — see [execute-query-failures.md](./execute-query-failures.md) branch 1).
73
+
74
+ ## Anti-patterns (what NOT to do)
75
+
76
+ - **"Wrap each in-scope query in a Try Catch that logs and continues."** A bare catch that swallows the child exception is exactly what produces branch 1: the scope completes `Success`, nothing rolls back, and downstream logic runs on uncommitted/partial data. Catch only to **re-raise** (or to run a real recovery path), so the transaction still rolls back on failure.
77
+ - **"Give each in-scope activity its own connection string so they're independent."** Per-child inline connections run **outside** the transaction (branch 4) — their writes auto-commit and cannot be rolled back with the batch, defeating the entire point of `Start Transaction`. Thread the scope's `DatabaseConnection` into every child instead.
78
+ - **"Add a Delay or a Retry Scope around the whole transaction to make it stick."** Neither addresses a body-skip package bug (branch 2 — fix the version) or a swallowed-rollback (branch 1 — fix the exception flow); they only hide the symptom and hold locks longer.
79
+ - **"Downgrade/upgrade the package on a hunch."** A version change is the fix only for the documented body-skip defect (branch 2). For branches 1, 3, and 4 it changes nothing — confirm the branch from evidence first.
80
+
81
+ ## Prevention (cross-branch)
82
+
83
+ - Let child faults **propagate** out of the `Start Transaction` scope (re-throw in any in-scope catch) so commit happens only on full success and any failure rolls the whole unit back.
84
+ - Thread the scope's output `DatabaseConnection` into the `ExistingDbConnection` of every child activity at design time; never let an in-scope activity open its own connection.
85
+ - Pin and track the `UiPath.Database.Activities` version across environments and avoid known-defective builds (e.g. v1.5.0); validate the transaction body actually executes after any version change.
86
+ - After migrating a project from **Windows - Legacy** to **Windows**, set the provider explicitly (`Microsoft.Data.SqlClient` / `System.Data.Odbc`), re-validate every Database activity, and clear the Studio cache if package types fail to resolve.
87
+ - Keep transactions short and commit promptly to limit lock duration; command-timeout and runaway-query tuning inside the transaction follow [execute-query-failures.md](./execute-query-failures.md) branch 5.
88
+
89
+ ## Related
90
+
91
+ - [connect-to-database-failures.md](./connect-to-database-failures.md) — the non-transactional connection-open surface (connection string, provider registration/bitness, file lock, provider init after migration); branch 3 here shares its provider-init fix.
92
+ - [execute-query-failures.md](./execute-query-failures.md) — child-statement faults inside the scope (null/out-of-scope connection, provider mismatch, SQL syntax, command timeout); a child SQL/timeout error is a query fault, not a transaction fault.
93
+ - [execute-non-query-failures.md](./execute-non-query-failures.md) — modification-statement faults (output-parameter sizing, parameter mapping, empty `Sql`, driver load) raised by an in-scope `Execute Non Query`.
94
+ - [`../overview.md`](../overview.md) — the package connection model (Connect / Start Transaction → `DatabaseConnection` → data activities → commit/rollback or Disconnect).
@@ -0,0 +1,10 @@
1
+ # Database Activities Presentation Rules
2
+
3
+ - **Activities** — use the display name (e.g., "Execute Query", "Execute Non Query", "Connect to Database", "Start Transaction", "Run Command"), not the fully qualified class name (e.g., `UiPath.Database.Activities.ExecuteQuery`)
4
+ - **Databases / connections** — refer to the database by its server + database name from the connection string (e.g., "the `SALES` database on `db-prod-01`"), not by the variable holding the `DatabaseConnection`
5
+ - **SQL statements** — refer to the statement by what it does (e.g., "the `SELECT` against `Orders`"), and quote the relevant SQL fragment; do not refer to it by the variable holding the query text
6
+ - **Parameters** — refer to query parameters by their named placeholder as written in the SQL (e.g., "`@customerId`"), and recommend the `Parameters` collection over string concatenation
7
+ - **Providers** — name the ADO.NET provider exactly as configured (e.g., `Microsoft.Data.SqlClient`, `System.Data.SqlClient`, `System.Data.Odbc`), since connection-string syntax and error text depend on it
8
+ - **Timeouts** — state timeout values in **milliseconds** with the second-equivalent in parentheses (e.g., "`TimeoutMS` 60000 (60 s)"), because the property is `TimeoutMS`, not a seconds-based field
9
+ - **Project compatibility** — refer to project type as **Windows** or **Windows - Legacy** (the exact Studio labels), since the distinction drives provider/driver behaviour
10
+ - **Errors** — quote the **inner** provider error (e.g., `Incorrect syntax near ')'`, `ORA-00900`, `Keyword not supported: 'Provider'`), not only the UiPath wrapper `Execute Query: A database error occurred`
@@ -0,0 +1,10 @@
1
+ # Database Activities Playbooks
2
+
3
+ **Investigation guide:** [investigation_guide.md](./investigation_guide.md) — data correlation rules and evidence-gathering prerequisites for Database Activities investigations
4
+
5
+ | Issue | Confidence | Description | Playbook |
6
+ |-------|:---:|-------------|----------|
7
+ | Execute Query Failures | Medium | `Execute Query` faults across seven surfaces: null/out-of-scope `DatabaseConnection`, post-migration provider mismatch (`Keyword not supported`), SQL syntax / unsafe concatenation (`A database error occurred`), query text pasted into the connection-string field, `TimeoutMS` exceeded (`Timeout expired`), `0xE0434352` CLR crash (oversized result set / Oracle ref cursor / stale package), and wrong activity for the statement type (Execute Query vs Execute Non Query). Includes anti-patterns and cross-branch prevention. | [execute-query-failures.md](./playbooks/execute-query-failures.md) |
8
+ | Connect to Database Failures (Excel / Access via OLE DB / ODBC) | Medium | `Connect to Database` faults across four surfaces: malformed connection string (`Invalid connection string` / `ArgumentException`), ACE/Jet provider not registered or 32-vs-64-bit mismatch (`provider is not registered on the local machine`), file lock (`used by another process`), and provider init / wrong `ProviderName` after Windows-Legacy → Windows migration (`type initializer for 'Microsoft.Data.SqlClient.SqlConnection'`). Centered on the Excel-as-a-database pattern. | [connect-to-database-failures.md](./playbooks/connect-to-database-failures.md) |
9
+ | Start Transaction Failures | Medium | `Start Transaction` (`DatabaseTransaction`) scope faults across four transaction-specific surfaces: silent success — a failing child neither rolls back nor re-raises so the job looks green on uncommitted data; scope skips its body with no error on the defective package build (v1.5.0); post-migration provider crash / unresolvable `DatabaseConnection` type after Windows-Legacy → Windows; and the scope's output `DatabaseConnection` not propagated to child `ExistingDbConnection` (null/instant-timeout, or writes that committed outside the transaction). Child SQL/timeout faults route to the data-activity playbooks. | [start-transaction-failures.md](./playbooks/start-transaction-failures.md) |
10
+ | Execute Non Query Failures | Medium | `Execute Non Query` (INSERT/UPDATE/DELETE/DDL/stored proc) faults across four surfaces: stored-proc output parameter with `Size = 0` over ODBC (`The Size property has an invalid size of 0`), unsafe SQL construction / parameter mapping / wrong type or DataTable-into-column (`A database error occurred`), empty `Sql` (`CommandText property has not been initialized`), and driver/client library not loadable (`Failed to load library (ErrorCode: 126)`). Covers the parameterize + Bulk Insert/Update guidance and the don't-use-for-SELECT rule. | [execute-non-query-failures.md](./playbooks/execute-non-query-failures.md) |
@@ -4,16 +4,25 @@
4
4
 
5
5
  Before using any fetched data, verify it matches the user's reported problem:
6
6
 
7
- - **Activity** — the faulted activity's namespace and class match the reported failure (e.g., `UiPath.Excel.Activities.Business.InvokeVBAX`, `UiPath.Excel.Activities.ExcelLookUpRange`, `UiPath.Excel.Activities.LookUpRangeX`). Classic Interop activities (inside an `Excel Application Scope`) and modern `*X` activities (inside `Use Excel File` / `Excel Process Scope`) share display names but run different code paths — treat them as different. `Invoke VBA` only exists on the modern (COM) surface; `Lookup Range` exists on both (classic `ExcelLookUpRange`, modern `LookUpRangeX`).
8
- - **Workbook** — the workbook path in evidence matches the file the user is asking about. `Invoke VBA` operates on the workbook open inside the surrounding `Excel Process Scope` — different scope = different workbook = unrelated data.
7
+ - **Activity** — the faulted activity's namespace and class match the reported failure (e.g., `UiPath.Excel.Activities.Business.ReadRangeX`, `UiPath.Excel.Activities.ExcelReadRange`, `UiPath.Excel.Activities.Business.InvokeVBAX`, `UiPath.Excel.Activities.ExcelLookUpRange`, `UiPath.Excel.Activities.LookUpRangeX`). Classic Interop activities (inside an `Excel Application Scope`) and modern `*X` activities (inside `Use Excel File` / `Excel Process Scope`) share display names but run different code paths and surface different exception wrappings — treat them as different. `Invoke VBA` only exists on the modern (COM) surface; `Lookup Range` exists on both (classic `ExcelLookUpRange`, modern `LookUpRangeX`).
8
+ - **Workbook path** — the workbook path in evidence matches the file the user is asking about. Casing, drive-letter mapping, and UNC vs. mapped-drive forms can all differ between a user's mental model and the runtime path. `Invoke VBA` operates on the workbook open inside the surrounding `Excel Process Scope` — different scope = different workbook = unrelated data. Don't substitute a similar path.
9
+ - **Sheet name** — the configured `SheetName` matches the one the user reports. Sheet names are surfaced case-sensitively by the OpenXML provider; Excel COM is more forgiving.
9
10
  - **Code file** — the `CodeFilePath` in evidence resolves to the macro source the user is asking about. A `.txt`/`.vba`/`.bas` file path that no longer exists on the robot machine, or a stale path checked into source control, is a different file than the one the user has open locally.
10
11
  - **Entry method** — the `EntryMethodName` in evidence matches the macro the user reports calling. Don't substitute a similarly-named macro.
11
- - **Robot / machine identity** — the robot account and the machine where Excel installed match the one the user reports. Excel security settings (Trust Center, Trust access to VBA project) are per-user-per-machine, so evidence from a different host is not transferable.
12
+ - **Workflow file** — if the project contains multiple workflows, the error originates from the `.xaml` / `.cs` the user is asking about, not a different workflow that happens to use the same activity.
13
+ - **Robot / machine identity** — the robot account and the machine where Excel is installed match the one the user reports. Excel install state, orphan `EXCEL.EXE` processes, AV/EDR posture, and security settings (Trust Center, Trust access to VBA project) are per-host (and per-user), so evidence from a different host is not transferable.
12
14
  - **Office version** — the Excel/Office version installed on the robot machine matches the one the user reports. Multiple Office versions on the same host produce COM dispatcher ambiguity unrelated to a single-version user's experience.
13
- - **Timestamp** — the failure occurred during the time window the user reported. Load-bearing for COM-interop investigations (transient `0x80010100` errors may not reproduce on demand) and for Trust Center investigations (the setting may have been changed since).
15
+ - **Timestamp** — the failure occurred during the time window the user reported. Load-bearing for file-lock investigations (the locking process may no longer exist by the time you check), COM-interop investigations (transient `0x80010100` errors may not reproduce on demand), and Trust Center investigations (the setting may have been changed since).
14
16
 
15
17
  If the data doesn't match: **discard it**. Do NOT use unrelated data as a proxy. Report the mismatch and ask for clarification.
16
18
 
19
+ ## Domain-Specific Data Gathering
20
+
21
+ 1. **Container scope** — capture whether the activity ran inside `Excel Application Scope` (legacy) or `Use Excel File` (modern). The scope determines which provider is in use, whether Excel UI is visible, and whether file acquisition uses COM or OpenXML. Read the workflow source — the scope is not always visible in the runtime error string.
22
+ 2. **Workbook provider** — for `Use Excel File`, capture whether the activity ran on the OpenXML provider or fell back to Excel COM. The `Read Formatting`, `Edit Password`, and macro-related properties force COM. Provider in use changes the exception wording and the set of supported features.
23
+ 3. **Robot Execution.log** — `%LocalAppData%\UiPath\Logs\Execution.log` on the host. Captures the activity-level log lines around the failure; often shows the workbook open / close pair so the lock window is observable.
24
+ 4. **Host-side process state** — for file-acquisition and COM failures, the host's process list at failure time is the authoritative evidence. If the user can capture `Get-Process EXCEL` or `handle.exe -a <path>` (Sysinternals) at the next failure, those are the strongest possible signals.
25
+
17
26
  ### Invoke VBA
18
27
 
19
28
  1. **Workflow source** — read the `InvokeVBAX` activity node from the surrounding `.xaml` to capture the literal values of `CodeFilePath`, `EntryMethodName`, and the expression bound to `EntryMethodParameters`. Property panel summaries truncate; the XAML is authoritative.
@@ -34,9 +43,19 @@ If the data doesn't match: **discard it**. Do NOT use unrelated data as a proxy.
34
43
 
35
44
  ## Testing Prerequisites
36
45
 
46
+ When testing hypotheses for Excel Activities issues, gather and verify these before drawing conclusions:
47
+
48
+ 1. **Activity identity** — class name and display name from the workflow source or stack trace. Distinguish modern (`*X` / `ReadRangeX`) from legacy (`ReadRange`) — they belong to different activity families within the same NuGet package.
49
+ 2. **Scope** — `Excel Application Scope` vs. `Use Excel File`. Determines provider and acquisition semantics.
50
+ 3. **Workbook reference** — the configured workbook path expression (literal vs. variable), the resolved path at runtime if available, and the host filesystem on which the path is meant to resolve.
51
+ 4. **Activity input properties** — every input the activity uses to address its target, from workflow source: `SheetName`, `Range`, `AddHeaders`, `PreserveFormat`, `Visible`, `EditPassword`, `ReadOnly`. The playbook will name the subset that matters.
52
+ 5. **Host context** — host machine name, Excel version installed (or whether Excel is installed at all), Robot user that owned the failing job's session, AV/EDR product running on the host.
53
+ 6. **Job run timestamp** — exact time the activity executed. Required for matching host-side process snapshots and for AV/EDR log correlation.
54
+ 7. **Package version** — `UiPath.Excel.Activities` version from `project.json`. Exception messages, default provider, and the supported subset of OpenXML features have shifted across versions; version-specific bugs are documented in playbooks as they're discovered.
55
+
37
56
  ### Invoke VBA
38
57
 
39
- When testing hypotheses for `Invoke VBA` issues, gather and verify these before drawing conclusions:
58
+ When testing hypotheses for `Invoke VBA` issues, also gather and verify these:
40
59
 
41
60
  1. **Activity identity** — confirm the faulted activity is `UiPath.Excel.Activities.Business.InvokeVBAX` (display name "Invoke VBA") and not a generic `Excel.Macros` or `Invoke Macro` activity, which run different code paths.
42
61
  2. **Macro source file path** — exact path bound to `CodeFilePath`, resolved against the robot's working directory at job run time (relative paths are resolved against the project folder, not the workbook folder).
@@ -44,13 +63,12 @@ When testing hypotheses for `Invoke VBA` issues, gather and verify these before
44
63
  4. **Entry method name and signature** — exact `EntryMethodName` string, exact `Sub`/`Function` declaration in the code file (name, parameter count, parameter types). VBA is case-insensitive but parentheses and trailing whitespace are not.
45
64
  5. **Parameter expression** — the expression bound to `EntryMethodParameters`. Confirm it evaluates to an `IEnumerable<Object>` (typically a `New Object() {...}` array, not a raw string or single value).
46
65
  6. **Excel Process Scope properties** — `Visible` setting, `ShowOnPrompt` / dialog handling, workbook path, password (if any), and whether the scope runs with `WorkbookPath` set or against an already-open workbook.
47
- 7. **Trust Center setting** — captured directly from the robot machine under the running user account. The setting is not visible in Orchestrator and cannot be inferred from job logs alone — the user (or someone with desktop access on the host) has to check it.
48
- 8. **Package version** — `UiPath.Excel.Activities` version. The exception messages produced by `InvokeVBAX` have shifted across major versions (notably the 2.20 → 2.22 and 6.x rewrites).
49
- 9. **Office version and bitness** — the exact Excel version installed on the robot machine and whether it is 32-bit or 64-bit. Mismatch with robot bitness is a known cause of COM dispatcher errors.
66
+ 7. **Trust Center setting** — captured directly from the robot machine under the running user account. Not visible in Orchestrator and not inferable from job logs alone — the user (or someone with desktop access on the host) has to check it.
67
+ 8. **Office version and bitness** — the exact Excel version installed on the robot machine and whether it is 32-bit or 64-bit. Mismatch with robot bitness is a known cause of COM dispatcher errors.
50
68
 
51
69
  ### Lookup Range
52
70
 
53
- When testing hypotheses for `Lookup Range` issues, gather and verify these before drawing conclusions:
71
+ When testing hypotheses for `Lookup Range` issues, also gather and verify these:
54
72
 
55
73
  1. **Activity surface** — confirm classic `UiPath.Excel.Activities.ExcelLookUpRange` (Interop, inside `Excel Application Scope`) vs modern `UiPath.Excel.Activities.LookUpRangeX` (inside `Use Excel File` / `Excel Process Scope`). The Excel-not-installed failure is most acute on the classic Interop surface.
56
74
  2. **Range / Value / SheetName** — the literal `Range` (blank vs `""` vs A1 reference), the search `Value` expression and its .NET type, and the `SheetName`. These drive the invalid-range, null-reference, and active-filter hypotheses.
@@ -1,6 +1,17 @@
1
1
  # Excel Activities
2
2
 
3
- Activities from the `UiPath.Excel.Activities` package for automating Microsoft Excel on Windows. Two execution surfaces coexist: modern Excel-scope activities that operate inside an `Excel Process Scope` and drive a real Excel.exe instance via COM interop, and legacy workbook activities that read/write `.xlsx` files directly through OpenXML without Excel installed. `Invoke VBA` (`UiPath.Excel.Activities.Business.InvokeVBAX`) is COM-only — it requires Excel.exe and a workbook handle.
3
+ Activities from the `UiPath.Excel.Activities` package for automating Microsoft Excel workbooks on Windows. The package supports two runtime providers and two container shapes; failure surfaces differ across them. Modern Excel-scope activities run inside an `Excel Process Scope` / `Use Excel File` and either drive a real Excel.exe instance via COM interop or read/write through OpenXML; legacy workbook activities and `Excel Application Scope` use COM (Excel installed) or OpenXML file access. `Invoke VBA` (`UiPath.Excel.Activities.Business.InvokeVBAX`) is COM-only — it requires Excel.exe and a workbook handle.
4
+
5
+ > **Scope** — this package is the desktop Excel surface (`UiPath.Excel.Activities`). Cloud Excel via Microsoft Graph lives in `UiPath.MicrosoftOffice365.Activities` and is documented under [`o365-activities/`](../o365-activities/overview.md).
6
+
7
+ ## How Execution Works
8
+
9
+ A Read Range / Write Range / Append Range / Delete Range / sheet-op activity executes inside one of two scopes:
10
+
11
+ 1. **Excel Application Scope** (legacy) — opens the workbook through Microsoft Excel via COM interop. Requires Excel installed on the host. Holds the workbook open for the duration of the scope. Activities inside the scope inherit the open workbook reference.
12
+ 2. **Use Excel File** (modern, same NuGet package) — opens the workbook with the OpenXML provider by default; falls back to Excel COM when the file requires Excel features the OpenXML provider does not support (or when `Read Formatting` / similar properties force COM). Does not require Excel installed when only OpenXML features are used.
13
+
14
+ Failures originate at one of four layers: file resolution (path / share / permissions), file acquisition (lock / corruption), provider parsing (sheet / range / cell address), or post-processing inside the activity (cell-type conversion, formula evaluation).
4
15
 
5
16
  ## How Invoke VBA Executes
6
17
 
@@ -16,25 +27,55 @@ Failures can originate at any layer — Excel security policy (step 3), code fil
16
27
 
17
28
  ## Key Activities
18
29
 
30
+ ### Range read / write / delete
31
+
32
+ - **Read Range** (`ReadRange`, modern `ExcelReadRange`) — read a rectangular range from a worksheet into a `DataTable`. Accepts a sheet name plus an A1-notation range (empty range = used range).
33
+ - **Read Cell** / **Read Cell Formula** — read a single cell value or its formula text.
34
+ - **Read Column** / **Read Row** — read a single column or row into an array.
35
+ - **Write Range** / **Write Cell** / **Append Range** — write a `DataTable`, value, or appended rows back to a worksheet. Subject to the same file-acquisition and sheet-resolution failures as the read family.
36
+ - **Delete Range** (`DeleteRange`, modern `DeleteRangeX`) — remove a range and shift surrounding cells. Sensitive to `ShiftCells` / `ShiftOption` interaction with merged cells and Excel Tables.
37
+
38
+ ### Sheet / workbook / filtering
39
+
40
+ - **Get Workbook Sheets** — enumerate sheet names in a workbook.
41
+ - **Insert Sheet** / **Delete Sheet** / **Rename Sheet** / **Copy Sheet** — sheet-level operations.
42
+ - **Filter Range** / **Pivot Range** / **Sort Range** — operations on a configured range; share the sheet- and range-resolution failure surface with the read family.
43
+
44
+ ### Macros and lookup
45
+
19
46
  - **Invoke VBA** (`InvokeVBAX`, display name "Invoke VBA") — execute a VBA macro stored in an external code file against the workbook currently open in the parent `Excel Process Scope`. Properties: `CodeFilePath` (path to `.txt`/`.vba`/`.bas` containing the macro source), `EntryMethodName` (name of the `Sub` or `Function` to invoke), `EntryMethodParameters` (`IEnumerable<Object>` of arguments), `Output` (return value when `EntryMethodName` points to a `Function`).
20
- - **Lookup Range** — find the cell address of a value within a worksheet range. Two surfaces: classic `UiPath.Excel.Activities.ExcelLookUpRange` (inside an `Excel Application Scope`, **Excel Interop / COM only**) and modern `UiPath.Excel.Activities.LookUpRangeX` (inside a `Use Excel File` / `Excel Process Scope`). Properties: `Range` (A1 range to search; leave **blank** — not `""` — to search the whole used range), `Value` (the value to find), `SheetName` (target sheet), `Output` (the matched cell address). Searches only *visible* cells, so active AutoFilters change the result.
47
+ - **Execute Macro** (`ExecuteMacro`, modern "Run Spreadsheet Macro") — run a macro already present in the workbook by name. COM-only.
48
+ - **Lookup Range** — find the cell address of a value within a worksheet range. Two surfaces: classic `UiPath.Excel.Activities.ExcelLookUpRange` (inside an `Excel Application Scope`, **Excel Interop / COM only**) and modern `UiPath.Excel.Activities.LookUpRangeX` (inside a `Use Excel File` / `Excel Process Scope`). Properties: `Range` (A1 range to search; leave **blank** — not `""` — to search the whole used range), `Value`, `SheetName`, `Output` (the matched cell address). Searches only *visible* cells, so active AutoFilters change the result.
21
49
 
22
50
  ## Common Failure Patterns
23
51
 
24
- - **Trust access to VBA project denied** — `Invoke VBA` faults the first time it tries to inject a module because Excel's "Trust access to the VBA project object model" setting is disabled. Surfaces as `Programmatic access to Visual Basic Project is not trusted` or a wrapped variant. The error is a security-policy block, not a code defect.
25
- - **Macro source file unreadable or malformed** — `Invoke VBA` faults reading or compiling the macro source. Surfaces as `Cannot run the macro`, `Compile error`, `Syntax error`, or `Sub or Function not defined`. Causes: code not wrapped in a `Sub`/`Function` block, non-UTF-8 encoding with hidden BOM/control characters (common when the file was generated inside Studio), missing or wrong `CodeFilePath`, code authored in an `.xlsm` rather than an external text file.
26
- - **Entry method name mismatch** — `Invoke VBA` faults with `Cannot run the macro '<name>'. The macro may not be available in this workbook` or `Sub or Function not defined` because `EntryMethodName` does not match a `Sub`/`Function` declared in the code file. Causes: typo, case mismatch (VBA identifiers are case-insensitive in source but UiPath passes the string through to `Application.Run`, which has been observed to reject case-mismatched names in some Excel versions), parentheses appended to the name (`MyMacro()` instead of `MyMacro`), or the macro is nested inside another `Sub`.
27
- - **Parameter type or shape mismatch** — `Invoke VBA` faults marshaling `EntryMethodParameters` into the COM call. Surfaces as `Type mismatch`, `Wrong number of arguments or invalid property assignment`, or a Studio freeze during property edit. Causes: `EntryMethodParameters` not an `IEnumerable<Object>` (e.g., a raw `String` or `Object` typed directly into the property panel), wrong arity (count mismatches the macro signature), or values typed inline in the property window instead of built via an `Assign` activity.
28
- - **COM interop with Excel failed** — `Invoke VBA` (or the surrounding Excel activity) faults with an HRESULT from the COM layer. The most common is `0x80010100 RPC_E_SYS_CALL_FAILED` ("The system call failed"). Causes: Excel busy with a blocking modal dialog (license prompt, recover-unsaved-files banner, macro-warning bar), Excel.exe hung, multiple Office versions installed, or a 32-bit/64-bit Office mismatch with the robot process.
52
+ ### Read / Write / Delete Range
53
+
54
+ - **File-locked** — `System.IO.IOException: The process cannot access the file '<path>' because it is being used by another process.` Workbook held open by another process (user-opened Excel UI, orphan `EXCEL.EXE` from a prior job, lock from a different host on a network share). Affects every activity that opens the workbook (Read Range, Write Range, Delete Range, Excel Application Scope, Use Excel File).
55
+ - **Sheet not found** — `BusinessRuleException: The sheet with the name '<name>' does not exist` (wording varies slightly by package version). Configured `SheetName` does not match any sheet in the workbook — typo, case-sensitivity on the OpenXML provider, sheet renamed or deleted upstream, leading/trailing whitespace. Affects every range-addressed activity.
56
+ - **File not found** — `System.IO.FileNotFoundException: Could not find file '<path>'` or `System.IO.DirectoryNotFoundException`. Workbook path does not resolve — file moved or deleted, UNC share unreachable, relative path resolved against the wrong working directory, drive letter not mapped under the Robot's session.
57
+ - **Null reference / target-invocation** — `System.NullReferenceException` or `System.Reflection.TargetInvocationException` surfacing from inside the activity. Workbook contains content the active provider cannot parse — sensitivity labels (Microsoft Purview / Azure Information Protection), unsupported macros or embedded objects under the OpenXML provider, broken named ranges, formula references to deleted sheets, or (on Write Range) an uninitialized `DataTable`. Often masked by a generic wrapper exception with no specific cell pointer.
58
+
59
+ ### Invoke VBA
60
+
61
+ - **Trust access to VBA project denied** — `Invoke VBA` faults the first time it tries to inject a module because Excel's "Trust access to the VBA project object model" setting is disabled. Surfaces as `Programmatic access to Visual Basic Project is not trusted` or a wrapped variant. A security-policy block, not a code defect.
62
+ - **Macro source file unreadable or malformed** — faults reading or compiling the macro source. Surfaces as `Cannot run the macro`, `Compile error`, `Syntax error`, or `Sub or Function not defined`. Causes: code not wrapped in a `Sub`/`Function` block, non-UTF-8 encoding with hidden BOM/control characters (common when the file was generated inside Studio), missing or wrong `CodeFilePath`, code authored in an `.xlsm` rather than an external text file.
63
+ - **Entry method name mismatch** — `Cannot run the macro '<name>'. The macro may not be available in this workbook` or `Sub or Function not defined` because `EntryMethodName` does not match a `Sub`/`Function` declared in the code file. Causes: typo, case mismatch, parentheses appended to the name (`MyMacro()` instead of `MyMacro`), or the macro nested inside another `Sub`.
64
+ - **Parameter type or shape mismatch** — faults marshaling `EntryMethodParameters` into the COM call. Surfaces as `Type mismatch`, `Wrong number of arguments or invalid property assignment`, or a Studio freeze during property edit. Causes: not an `IEnumerable<Object>` (e.g., a raw `String` typed into the property panel), wrong arity, or values typed inline instead of built via an `Assign`.
65
+ - **COM interop with Excel failed** — faults with an HRESULT from the COM layer, most commonly `0x80010100 RPC_E_SYS_CALL_FAILED` ("The system call failed"). Causes: Excel busy with a blocking modal dialog (license prompt, recover-unsaved-files banner, macro-warning bar), Excel.exe hung, multiple Office versions installed, or a 32-bit/64-bit Office mismatch with the robot process.
66
+
67
+ ### Execute Macro
68
+
69
+ - **Macro fault / hang** — `COMException` with `0x80020009 DISP_E_EXCEPTION`, `0x800AC472`, or `0x80010108 RPC_E_DISCONNECTED`; or a job hang with no exception when the macro surfaces a modal dialog. Causes: macro name absent from the workbook, a VBA error inside the macro, the macro tearing down Excel (`Workbooks.Close` / `Application.Quit`), Trust Center policy disabling macros on the Robot host, an STA apartment violation, or a missing add-in / ActiveX dependency.
29
70
 
30
71
  ### Lookup Range
31
72
 
32
73
  - **Excel not installed / Interop init failure** — classic `Lookup Range` launches Excel.exe via the Interop API and faults at startup on a host with no Excel. Surfaces as `Excel is not installed`, `REGDB_E_CLASSNOTREG` (`80040154`), or `Could not load ... Microsoft.Office.Interop.Excel`. Migration target on Excel-less hosts: Workbook `Read Range` (OpenXML) + `Lookup Data Table`.
33
- - **Silent miss from active filters** — `Lookup Range` searches only visible cells, so active AutoFilters/column filters that hide the target row make it return null/empty with no error. A downstream null fault is the first visible symptom.
34
- - **Workbook locked / file in use** — opening the workbook faults with `The process cannot access the file because it is being used by another process` / `locked for editing`. Causes: file open interactively, an orphaned `EXCEL.EXE` holding the handle, a concurrent job, or a sync/AV client. Distinct from the COM `0x80010100` dispatcher failure above.
74
+ - **Silent miss from active filters** — searches only visible cells, so active AutoFilters/column filters that hide the target row make it return null/empty with no error. A downstream null fault is the first visible symptom.
75
+ - **Workbook locked / file in use** — opening the workbook faults with `being used by another process` / `locked for editing`. Causes: file open interactively, an orphaned `EXCEL.EXE` holding the handle, a concurrent job, or a sync/AV client. Distinct from the COM `0x80010100` dispatcher failure above.
35
76
  - **Object reference not set (sheet/range missing or no scope)** — `NullReferenceException` when the `SheetName` does not exist (typo/rename/case), a named range/table is undefined, or the activity runs outside an `Excel Application Scope` / `Use Excel File` so there is no workbook context.
36
77
  - **Invalid range syntax or value misconfiguration** — `Range` set to an empty-string `""` instead of left blank (whole-sheet search is *blank*, not `""`), a malformed A1 reference, unescaped wildcards (`*`/`?`/`~`) in the search `Value`, or a type mismatch (text-vs-number, stray whitespace) that makes a present value fail to match.
37
- - **Silent miss against a formula cell** — the search target is the *computed* result of an Excel formula and the Interop read can fail or read an unrefreshed value. `Lookup Range` returns null/wrong even though the displayed cell text matches the search value. Common with volatile formulas, cross-sheet / external references, and add-in-dependent calculations. The fix is to either freeze the cell to a static value (`Copy > Paste Special > Values`) or move off Interop to the Workbook `Read Range` + `Lookup Data Table` path, which reads cached values rather than re-evaluating.
78
+ - **Silent miss against a formula cell** — the search target is the *computed* result of an Excel formula and the Interop read can fail or read an unrefreshed value. Returns null/wrong even though the displayed cell text matches. Common with volatile formulas, cross-sheet / external references, and add-in-dependent calculations. Fix: freeze the cell to a static value (`Copy > Paste Special > Values`) or move off Interop to the Workbook `Read Range` + `Lookup Data Table` path, which reads cached values rather than re-evaluating.
38
79
 
39
80
  ## Package
40
81