Skip to content

docs(uipath-rpa): workflow authoring rules, rerun-safe REFramework, XAML and activity pitfalls, uip rpa publish - #3782

Open
danmunteanu1 wants to merge 3 commits into
mainfrom
docs/uipath-rpa-genome-findings
Open

danmunteanu1 wants to merge 3 commits into
mainfrom
docs/uipath-rpa-genome-findings

Conversation

@danmunteanu1

Copy link
Copy Markdown
Contributor

Split from #3460 so each skill's changes reach its own code owners. Found while building automations from genomes.

Changes

SKILL.md

  • Common Rule 4a: author .xaml / .cs with Write and Edit, never a generator script — Object Repository links survive Edit, not regeneration.
  • Common Rule 4b: write a workflow file only for a unit worth invoking; keep a single activity or a short run of assignments inline.
  • Try/Catch at the level where handling differs, not around every activity.
  • A project edited in Studio Web, a process a Flow starts included, is XAML with VB.
  • Remove dependencies through uip rpa cleanup --dry-run.

CLI and packaging (cli-reference.md, library-authoring-guide.md)

  • uip rpa publish replaces uip or packages upload / uip or libraries upload: destination by package type, destination flags and refusals, 409 on a duplicate version, a test package needs a Publishable test case.
  • build writes entry-points.json and bindings_v2.json under .local/content/; uip rpa cleanup; an 8.3 short --project-dir breaks run.

XAML and coded pitfalls (xaml/common-pitfalls.md, activity and pattern cards, coded references)

  • Invoke Code: Language defaults to VBNet whatever the project language; child-element Code loses its line breaks.
  • A Finally runs only when the exception is caught in the same file, ContinueOnError and Isolated included; Isolated keeps the exception type; out/in-out values when the callee faults.
  • Invoke Workflow File: direct-child and Dictionary-wrapped arguments both bind; an expression WorkflowFileName hides the callee from the designer; a callee argument named like an activity property fails validation.
  • Arrays take a clr-namespace alias (s:Object[]), never x:; While / DoWhile / ForEach Condition has no InArgument wrapper.
  • Coded source file types work in XAML expressions with a namespace import and the <Project>.Core reference; assembly references Studio requires and the CLI never checks; every partial CodedWorkflow names CodedWorkflowBase.
  • Element-text whitespace collapses (xml:space="preserve"); folder named like a workflow beside it fails build with CS0101; OCR engines fail headless build on the CoreIPC check; database activity parameters; AppendLine, CopyFolderX and DeleteFileX behaviour.
  • Multiple Assign on the activity card (Windows projects only).

REFramework (reframework-guide.md)

  • Init and Close run more than once: rerun-safe Init, Close safe on unopened resources, non-UI resources in a context object passed In.
  • Template test cases fall behind arguments added to framework workflows; Should Stop inside a looping Get Transaction Data; a failure inside End Process does not fault the job.

Bundled activity docs

  • DoWhile / While / ForEach Condition, AppendLine, CopyFolderX, KillProcess AppliesTo members, InvokeWorkflow arguments, AddDataRow s:Object[], InvokeCode Language, O365 GetEmails OrderBy. The last three match package-doc PRs UiPath/Activities#40391, #40392 and #40393.

Execution maps

  • One batched gate over every edited file; a permission rejection is an approval gate, not a CLI failure; Object Repository updates batched per phase.

…mework, XAML, Invoke Code and Finally pitfalls, publish and cleanup, bundled activity-doc corrections
@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @danmunteanu1's task in 6m 2s —— View job


PR Review: docs(uipath-rpa) — workflow authoring rules, rerun-safe REFramework, XAML pitfalls, publish

  • Read review criteria (.github/code_review.md) and project conventions
  • Read full diff (origin/main...HEAD)
  • Read existing PR conversation
  • Review changed files in full context
  • Check skill-specific items (links, cross-skill refs, secrets, CODEOWNERS)
  • Post review findings

Summary

Substantial documentation update to skills/uipath-rpa/ — 33 files, +341/−224 lines. Replaces uip or packages upload / uip or libraries upload with the unified uip rpa publish, adds new XAML pitfalls (InvokeCode Language default, Finally cross-file semantics, array x: prefix, whitespace collapse, OCR CoreIPC, folder-naming CS0101, database activity gotchas), corrects While/DoWhile/ForEach Condition type from InArgument<bool> to Activity<bool>, adds REFramework rerun-safety guidance, adds MultipleAssign to the activity card, adds workflow-file authoring rules (Common Rules 4a/4b), and fixes CodedWorkflowBase across all partial-class examples.

Change-by-Change Review

1. skills/uipath-rpa/SKILL.md (+12/−9)

Severity: OK

Clean changes: new Common Rules 4a (author with file tools) and 4b (write a file only for an invocable unit) fit naturally after Rule 4. Try/Catch guidance refined from "around every external interaction" to "each unit whose failure you handle differently" — consistent with the error-handling guide update. uip or packages upload → uip rpa publish aligns with the CLI catalog. Studio Web constraint for coded/C# projects added to Rule 2a. dotNetVersion mismatch guidance added. project close replaces "host restart" for clearing CS0246.

Section pointer from the Task Navigation table now uses § targeted lookups to specific anchors (environment-setup.md#step-01-establish-project-root, #step-03-creating-a-new-project) — both resolve correctly.

2. references/cli-reference.md (+27/−17)

Severity: OK

The uip rpa publish section is well-structured: destination flags with error messages, the Publishable test-case gate, 409 duplicate-version error. rpa publish confirmed in the CLI catalog (assets/uip-catalog-snapshot.json line 1424). The old commands (or packages upload, or libraries upload) still exist in the catalog but aren't retired — the PR correctly makes rpa publish the recommended path without claiming the old ones are gone. PackagePath vs OutputPath correction, 8.3 short-path pitfall, entry-points.json/bindings_v2.json build artifacts, cleanup --dry-run for unused deps — all substantive.

3. references/xaml/common-pitfalls.md (+100/−87)

Severity: OK

The largest change and the most consequential. Key corrections/additions:

  • InvokeCode Language default — changed from "infers from project" to "defaults to VBNet". This is a major correction; the old guidance ("omit Language, it's inferred") would cause C# code to compile as VB.
  • InvokeCode Code child element — changed from "silent no-op" to the more precise "line breaks collapse" with the // comment swallowing explained. The <x:String xml:space="preserve"> workaround noted.
  • Finally cross-file semantics — reverses the prior claim ("Finally DOES run when the Catch rethrows"). The new guidance is detailed and internally consistent: a rethrow that an outer Try/Catch in the same file catches still runs the inner Finally.
  • Coded source file types in XAML — changed from "cannot reference" to "need a namespace import and assembly reference". Major correction with <ProjectName>.Core assembly, InvokeMethod for void helpers, and project close for reload.
  • Array types — consolidated from three sections (Array Types in Variable, Generic Type Arguments Cannot Wrap Array Types, plus inline InArgument<Object[]> discussion) into one paragraph under the existing x: prefix section. The key insight: s:Object[] works everywhere x:Object[] doesn't. The InvokeMethod fallback for ParamArray is dropped as unnecessary.
  • New sections: OCR CoreIPC check, AppendLine line-break semantics, CopyFolderX into vs as, DeleteFileX raises on missing, folder-naming CS0101, whitespace collapse / xml:space="preserve", database activity gotchas, callee out/InOut arguments on fault. All are specific, testable pitfalls.
  • InvokeWorkflowFile arguments — changed from "Dictionary wrapper silently cleared by Studio" to "both forms bind the same; prefer direct children". Removes the wrong "Studio silently clears" claim.
  • Assembly references — rewritten from a catch-all "missing assembly" list to "Studio requires, CLI doesn't check" with the System.Collections + <ProjectName>.Core pattern.

4. references/error-handling-guide.md (+7/−5)

Severity: OK

Isolated invoke type preservation corrected (rule 5), Try/Catch granularity guidance refined, Check App State row added to the mechanism table, ContinueOnError on InvokeWorkflowFile pitfall added. The Finally rule 5 here is consistent with common-pitfalls.md.

5. references/reframework-guide.md (+27/−3)

Severity: OK

New subsections: Init/Close rerun safety, template test cases falling behind, Should Stop inside looping Get Transaction Data, End Process not faulting the job. The context-object pattern for non-UI resources (point 3 under Init/Close) correctly cross-references the new common-pitfalls.md § Out and InOut Arguments When the Callee Faults. Checklist items updated to reference the new sections.

6. references/common-activity-card.md (+51/−3)

Severity: OK

MultipleAssign entry is thorough: Windows-only platform constraint, Legacy assembly variant, list-order semantics, C# binding note. Count updated from 13 to 14 activities; the card entry list matches the actual headings (verified: 14 entries, 14 ### sections). Assign notes updated to reference MultipleAssign for consecutive assignments.

7. references/common-pattern-card.md (+6/−8)

Severity: OK

InvokeWorkflowFile snippet changed from Dictionary-wrapped to direct-children form (consistent with the pitfall correction). InvokeCode snippet gets Language="VBNet" (consistent with the default-is-VBNet correction). Notes updated for both.

8. references/coded/codedworkflow-reference.md (+8/−6) and assets/codedworkflow-template.md (+4/−2)

Severity: OK

CodedWorkflowBase added to every partial-class declaration. The explanation of why it's needed (build compiles without a base → CS0103, CS1503) is clear. Templates and reference doc are consistent with each other.

9. references/coded/operations-guide.md (+7/−6)

Severity: OK

All partial class CodedWorkflow references updated to include : CodedWorkflowBase. The coded base partials regeneration procedure updated from "delete + restart + validate" to "delete + project close + validate" — consistent with SKILL.md and the coded troubleshooting table.

10. references/data-manipulation-guide.md (+9/−11)

Severity: OK

The C#-expression XAML escalation path rewritten: coded source file helper method is now a valid option (was previously stated as impossible). Three escalation options instead of two. The "XAML cannot reference coded types" claim removed — correctly, since it was wrong. "Source file vs workflow" paragraph updated to reflect that helpers are callable from expressions.

11. Activity docs (DoWhile, While, ForEach, AddDataRow, AppendLine, CopyFolderX, InvokeCode, InvokeWorkflow, KillProcess, O365 GetEmails, While 26.4, DoWhile 26.4)

Severity: OK

All corrections are specific and internally consistent: InArgument wrapper removed from While/DoWhile Condition, x:Object[] → s:Object[] in AddDataRow, Language attribute added to InvokeCode examples, KillProcessApplyOn enum values corrected to match the actual names, ForEach.Condition and ForEach.Values documentation updated, OrderBy on GetEmails documented as non-functional.

12. Other reference updates (environment-setup, testing-guide, library-authoring-guide, coded-vs-xaml-guide, uia-starter-guide, legacy files, csharp-activity-binding-guide, xaml-basics-and-rules, execution-maps-guide)

Severity: OK

All consistent with the core changes: CodedWorkflowBase in environment-setup, Dictionary-wrapper removal in testing-guide, publish replacing upload in library-authoring-guide, XAML-invoking-coded argument naming in coded-vs-xaml-guide, upload → publish in uia-starter-guide, s:Object[] and InvokeCode attribute form in legacy files, InArgument<Object> literal trap clarified in csharp-activity-binding-guide, assembly-references cross-link in xaml-basics-and-rules, batched gate and OR definition updates in execution-maps-guide.

13. references/legacy/testing-guide.md (+11/−11)

Severity: OK

InvokeCode Code changed from child-element form (literal newlines) to attribute form with `` line breaks — consistent with the InvokeCode pitfall correction. Language="VBNet" added. The `\n` pattern (entity-escaped newline for the runtime plus a real newline for source readability) is valid XML.

What's Missing

  • Duplication between AppendLine.md and common-pitfalls.md § AppendLine: both describe the same line-break-before-text behavior, BOM behavior, and empty-file threshold in similar detail. The pitfall entry adds coping advice (split on breaks, strip BOM) that justifies its existence, but the overlap is above a bridging sentence. Consider trimming the pitfall to the "how to cope" angle and pointing at AppendLine.md for the mechanics. (Low)
  • or packages upload / or libraries upload not added to cli-renames.md: the PR replaces all references to these commands with rpa publish, but doesn't add them to the retired-verbs table in .claude/rules/cli-renames.md. They still exist in the CLI catalog so they may not be formally retired — but if the intent is that agents should never use them, a retirement entry would help the linter catch future drift. (Low — depends on whether UiPath has formally deprecated these verbs or just added a preferred alternative)

Area Ratings

Area Status Notes
Frontmatter OK No frontmatter changes; existing frontmatter valid
E2E Tests OK No new skill folder; existing skill — changes are documentation corrections, not new CLI workflows requiring test coverage
Skill Body OK New rules 4a/4b well-placed; all cross-references resolve
References & Assets OK 100+ lines of new pitfall content, all internally consistent; all relative links verified
Repo Hygiene OK No secrets, no personal paths, no cross-skill file references, no binary files, changes scoped to uipath-rpa

Issues for Manual Review

  • Finally cross-file semantics reversal (error-handling-guide.md:66, common-pitfalls.md:350): the prior guidance stated "Finally DOES run when the Catch rethrows (modern, verified)". This PR reverses it to "Finally runs only when the exception is caught inside the same workflow file." This is a significant behavioral claim that changes how agents structure cleanup. The PR description says "verified" but domain experts should confirm the new behavior matches the UiPath runtime.
  • Isolated invoke type preservation (error-handling-guide.md:38): previously stated "Isolated invoke loses the type" (BusinessRuleException arrives as System.Exception). Now states the opposite — "Isolated invoke keeps the type." Another reversal of a verified claim. Domain review recommended.
  • InvokeCode Language default (common-pitfalls.md:378, InvokeCode.md:8): previously stated "InvokeCode infers the language from the project's expressionLanguage". Now states "defaults to VBNet whatever the project's expression language." The PR removes the "inferred" examples. Domain experts should confirm the actual runtime behavior.
  • uip rpa publish destination flags: the flag table (cli-reference.md:498-502) lists --personal-workspace, --folder-path/--folder-key, --shared-libraries, --feed-id — these should be verified against uip rpa publish --help since they're new to this doc.

Conclusion

Clean, well-structured PR with high-quality content additions. The changes are internally consistent across all 33 files — when one file's guidance changes, every file that references the same concept is updated in the same PR. The four behavioral reversals (Finally semantics, Isolated type, InvokeCode Language default, coded source file accessibility from XAML) are the only items that warrant domain-expert confirmation before merge, as they contradict previously "verified" claims. No blocking issues found.


|


Every UIA `N*` activity carries a `Version` attribute in its `uip rpa activities get-default-xaml` starter (e.g. `NGetText Version="V5"`, `NApplicationCard Version="V2"`). Dropping it survives BOTH `validate` and `build` and fails only at runtime with `System.InvalidOperationException ... ThrowIfNotInTree` on the activity's argument bindings. Carry over **every** attribute the starter emits. See [csharp-activity-binding-guide.md § `ThrowIfNotInTree` at runtime](csharp-activity-binding-guide.md#throwifnotintree-at-runtime--two-causes).

## OCR Engines in XAML Fail `build` With "please install the UiPath.CoreIPC package"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was fixed by @IonMiron I'll remove the paragraph

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@danmunteanu1 danmunteanu1 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notes on text that changes once a reported defect is fixed.

The auto-generated `CodedWorkflow` is a `partial class`. You can extend it to add shared methods, properties, or constants available to all workflows and test cases — with or without hooks:
The auto-generated `CodedWorkflow` is a `partial class`. You can extend it to add shared methods, properties, or constants available to all workflows and test cases — with or without hooks.

Every part you write names `CodedWorkflowBase` as its base (`: CodedWorkflowBase`, `: CodedWorkflowBase, IBeforeAfterRun` for hooks). `build` compiles the class from a part it generates plus the project's parts, and a project part without the base leaves the class with none: `CS0103: The name 'Log' does not exist`, `CS0103` on `serviceContainer` in `.generated/CodedWorkflow.g.cs`, and `CS1503: cannot convert from '<Workflow>' to 'UiPath.CodedWorkflows.CodedWorkflowBase'` — in process and library projects alike, while `validate` passes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Goes when build gives CodedWorkflow its base whatever the parts declare: UiPath/cli#4890. : CodedWorkflowBase itself stays valid.

namespace {{PROJECT_NAME}}
{
public partial class CodedWorkflow : IBeforeAfterRun
// Name CodedWorkflowBase on every partial part, or build compiles CodedWorkflow without a base

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both template comments go with UiPath/cli#4890; the base itself stays.

| **`CS0103 'uiAutomation'` (or `workflows` lacks a workflow method), `CodedWorkflow.cs` present and `build` green** | The coded base partials are a first-load snapshot and don't refresh in-session (§ Configure UI Targets); a package or cross-called workflow was added after they generated | Regenerate: delete `.local/.codedworkflows/`, restart the headless host, `validate`. Prevent by installing all packages + writing the stub before the first `uip rpa` command. |
| **Runs invoke stale code after a signature change**, or `run` fails in `.local/install/<Class>+<Class>Activity.cs` with `There is no argument given that corresponds to the required parameter` | Generated wrapper (`*+Activity.cs` / WorkflowRunnerService) not regenerated | Re-run `uip rpa build` after changing an Execute signature; never hand-patch generated files under `.local/` |
| **`validate` (or the pre-validation in `run` / `debug start`) fails with `CS0246 'CodedWorkflow' could not be found` plus `CS0103` on `uiAutomation` / `Log`, while `build` is green** | `.local\.codedworkflows\CodedWorkflow.cs` is missing. The host generates it only while loading a project that already has a `[Workflow]`/`[TestCase]` `.cs`; a host that loaded stub-less (e.g. the window baseline ran before the stub) never emits it — `build` stays green, `validate`/`run` stay CS0246. Not a source or using defect | **Prevent:** write the coded stub before the first `uip rpa` command (SKILL.md § Capture-First Fast Path step 2). **Already stale:** run `uip rpa project close --project-dir "<PROJECT_DIR>"`, then re-run `validate`. |
| **`build` fails with `CS0103 'Log'`, `CS0103 'serviceContainer'` in `.generated/CodedWorkflow.g.cs` and `CS1503 cannot convert … to 'UiPath.CodedWorkflows.CodedWorkflowBase'`, while `validate` is clean** | A project file declares `partial class CodedWorkflow` without naming `CodedWorkflowBase` | Add `: CodedWorkflowBase` to that declaration ([codedworkflow-reference.md § Extending CodedWorkflow with Partial Classes](codedworkflow-reference.md#extending-codedworkflow-with-partial-classes)) |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Row goes with UiPath/cli#4890.

```

4. **Author against the library in consumer XAML.** Library activities are not in the `activities find` catalog and `activities get-default-xaml` does not load library types — get the activity surface from the package itself:
4. **Author against the library in consumer XAML.** Once the library is installed, `activities find` returns its public workflows and `activities get-default-xaml` returns each one's element with its arguments as properties, without their types or directions — read those from the package itself:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes when activities get-default-xaml returns each argument with its direction and type: UiPath/cli#4895. Reading them from the package is then unnecessary.

Without the import, `validate` and `build` fail with `CS0103` / `BC30451` on a helper's name and `CS0246` / `BC30002` on a type name. Types shared across projects belong in a library ([../library-authoring-guide.md](../library-authoring-guide.md)).

**Fix:** inline the logic in `InvokeCode`, or invoke a coded workflow via `InvokeWorkflowFile`. Helpers shared across projects belong in a library ([../library-authoring-guide.md](../library-authoring-guide.md)).
The project's Studio host compiles the coded files when it loads the project, so a `.cs` file added later — or a member added or changed in an existing one — stays invisible to XAML: `validate`, `build` and `run` keep reporting the type or member as missing (`CS0103`, `CS0246`, VB `BC30451`, `BC30456`) with the import in place. Run `uip rpa project close --project-dir "<PROJECT_DIR>"` and validate again; the next command reloads the project.

@danmunteanu1 danmunteanu1 Oct 7, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Goes when the headless host regenerates its view of the coded files after a change; shrinks to the reload command if uip rpa project close only gets documented and also regenerates .local/.codedworkflows/. STUD-81658.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

| **Runs invoke stale code after a signature change**, or `run` fails in `.local/install/<Class>+<Class>Activity.cs` with `There is no argument given that corresponds to the required parameter` | Generated wrapper (`*+Activity.cs` / WorkflowRunnerService) not regenerated | Re-run `uip rpa build` after changing an Execute signature; never hand-patch generated files under `.local/` |
| **`validate` (or the pre-validation in `run` / `debug start`) fails with `CS0246 'CodedWorkflow' could not be found` plus `CS0103` on `uiAutomation` / `Log`, while `build` is green** | `.local\.codedworkflows\CodedWorkflow.cs` is missing. The host generates it only while loading a project that already has a `[Workflow]`/`[TestCase]` `.cs`; a host that loaded stub-less (e.g. the window baseline ran before the stub) never emits it — `build` stays green, `validate`/`run` stay CS0246. Not a source or using defect | **Prevent:** write the coded stub before the first `uip rpa` command (SKILL.md § Capture-First Fast Path step 2). **Already stale:** run `uip rpa project close --project-dir "<PROJECT_DIR>"`, then re-run `validate`. |
| **`build` fails with `CS0103 'Log'`, `CS0103 'serviceContainer'` in `.generated/CodedWorkflow.g.cs` and `CS1503 cannot convert … to 'UiPath.CodedWorkflows.CodedWorkflowBase'`, while `validate` is clean** | A project file declares `partial class CodedWorkflow` without naming `CodedWorkflowBase` | Add `: CodedWorkflowBase` to that declaration ([codedworkflow-reference.md § Extending CodedWorkflow with Partial Classes](codedworkflow-reference.md#extending-codedworkflow-with-partial-classes)) |
| **`CS0103 'uiAutomation'` (or `CS1061` on `workflows.<Workflow>`), `CodedWorkflow.cs` present and `build` green** | The coded base partials are a first-load snapshot; a package or cross-called workflow was added after they generated | Reload per § Configure UI Targets. |

@danmunteanu1 danmunteanu1 Oct 7, 2026 •

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Goes when the host regenerates its coded snapshot after a change (STUD-81658).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

**Prevention:** Always check `project.json` `expressionLanguage` before writing any expression. Never mix languages.

## Missing Assembly References
## Assembly References Studio Requires and the CLI Does Not Check

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Section and its pointers go when the Studio designer resolves expression types as build does; it becomes a CLI warning to act on if the CLI starts reporting what the designer reports. Not filed yet.

</ui:AddDataRow.DataTable>
<ui:AddDataRow.ArrayRow>
<InArgument x:TypeArguments="x:Object[]">[New Object() {"Alice", 30, "HR"}]</InArgument>
<InArgument x:TypeArguments="s:Object[]">[New Object() {"Alice", 30, "HR"}]</InArgument>

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Matches UiPath/Activities#40392; replaced by the package's own text when the bundled copy is refreshed.

## Language Attribute

By default, InvokeCode infers the language from the project's `expressionLanguage` setting in `project.json`, so omitting the `Language` attribute is usually fine. However, if you do set it explicitly, use the correct enum values — they differ from `project.json`:
`Language` defaults to `VBNet` whatever the project's `expressionLanguage` is: without it, a C# body is compiled as VB.NET and fails with VB `BC3xxxx` errors. Set it on every InvokeCode. The enum values differ from `project.json`:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Matches UiPath/Activities#40393; replaced by the package's own text when the bundled copy is refreshed, and the Invoke Code entries in xaml/common-pitfalls.md can then point to the package doc.

| Enum | Values |
|------|--------|
| `OrderBy` | `NewestFirst`, `OldestFirst` |
| `OrderBy` | `NewestFirst`, `OldestFirst` — not applied by `GetEmails`: either value returns the same emails in the same order; sort the result by `Item.ReceivedDateTime` for oldest first |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Matches UiPath/Activities#40391; replaced by the package's own text when the bundled copy is refreshed.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant