<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pravinraj Vincent</title>
    <description>The latest articles on DEV Community by Pravinraj Vincent (@pravinraj).</description>
    <link>https://dev.to/pravinraj</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4191253%2F76aee8af-be2b-4657-8018-a04e544eb3ea.jpg</url>
      <title>DEV Community: Pravinraj Vincent</title>
      <link>https://dev.to/pravinraj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pravinraj"/>
    <language>en</language>
    <item>
      <title>UiPath Pitfall #4: A Variable With the Same Name as Your Argument</title>
      <dc:creator>Pravinraj Vincent</dc:creator>
      <pubDate>Fri, 30 Oct 2026 00:56:01 +0000</pubDate>
      <link>https://dev.to/pravinraj/uipath-pitfall-4-a-variable-with-the-same-name-as-your-argument-3h4h</link>
      <guid>https://dev.to/pravinraj/uipath-pitfall-4-a-variable-with-the-same-name-as-your-argument-3h4h</guid>
      <description>&lt;p&gt;You assign a value to your Out argument, a Message Box right after says it's filled, and a few activities later (or back in the parent workflow) it's &lt;code&gt;Nothing&lt;/code&gt;. No error and no runtime warning. It's just empty.&lt;/p&gt;

&lt;p&gt;This came up again on the UiPath Forum in &lt;a href="https://forum.uipath.com/t/out-param-nothing-when-leaving-do/5786276" rel="noopener noreferrer"&gt;Out param Nothing when leaving Do&lt;/a&gt;, and it's one of those bugs that makes you doubt Studio itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cause
&lt;/h2&gt;

&lt;p&gt;Most of the time, a variable and an argument share a name.&lt;/p&gt;

&lt;p&gt;You've got &lt;code&gt;out_Result&lt;/code&gt; in the Arguments panel, and somewhere along the way a variable called &lt;code&gt;out_Result&lt;/code&gt; also got created, often scoped to a Sequence or a Do block. Inside that scope, your Assign writes to the variable. Outside it, you're reading the argument, which never got touched.&lt;/p&gt;

&lt;p&gt;The Managing Arguments docs spell it out: if a variable and an argument have the same name, the variable is always the one used at runtime. The same goes for two variables in different scopes of one file. The inner scope wins.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it sneaks in
&lt;/h2&gt;

&lt;p&gt;For me it's usually &lt;code&gt;Ctrl + K&lt;/code&gt; in the To field of an Assign. That shortcut creates a new &lt;strong&gt;variable&lt;/strong&gt;, not an argument. So if you type the argument's name and hit &lt;code&gt;Ctrl + K&lt;/code&gt;, you've just made a duplicate scoped to wherever you were.&lt;/p&gt;

&lt;p&gt;(&lt;code&gt;Ctrl + M&lt;/code&gt; is the one that creates an In argument.)&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Find the duplicate.&lt;/strong&gt; Select the container (click the Do, Sequence or Try block, not just the root) and check the Variables panel for the argument's name. Delete the variable, keep the argument, then re-pick the argument in the Assign.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Let Workflow Analyzer catch it.&lt;/strong&gt; Run Analyze File or Analyze Project from the Design ribbon. There are rules for exactly this:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ST-NMG-006&lt;/code&gt; Variable Overrides Argument&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ST-NMG-005&lt;/code&gt; Variable Overrides Variable&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're on a team, set &lt;code&gt;ST-NMG-006&lt;/code&gt; to Error in the Workflow Analyzer settings. Then it shows up as an error in the Errors panel, which is a lot harder to scroll past.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use direction prefixes on arguments only.&lt;/strong&gt; &lt;code&gt;in_&lt;/code&gt;, &lt;code&gt;out_&lt;/code&gt;, &lt;code&gt;io_&lt;/code&gt; for arguments, never for variables. A variable called &lt;code&gt;out_Something&lt;/code&gt; then looks wrong the moment you see it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assign the Out argument once.&lt;/strong&gt; If the value gets built up across several scopes, work on a local variable and assign it to the Out argument once, at the end of the workflow:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vb"&gt;&lt;code&gt;&lt;span class="c1"&gt;' inside the scopes, work on a local variable&lt;/span&gt;
&lt;span class="n"&gt;resultBuilder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;resultBuilder&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;currentRow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Name"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;ToString&lt;/span&gt;

&lt;span class="c1"&gt;' last activity in the workflow&lt;/span&gt;
&lt;span class="n"&gt;out_Result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;resultBuilder&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Docs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Managing arguments: &lt;a href="https://docs.uipath.com/studio/standalone/latest/user-guide/managing-arguments" rel="noopener noreferrer"&gt;https://docs.uipath.com/studio/standalone/latest/user-guide/managing-arguments&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Managing variables: &lt;a href="https://docs.uipath.com/studio/standalone/latest/user-guide/managing-variables" rel="noopener noreferrer"&gt;https://docs.uipath.com/studio/standalone/latest/user-guide/managing-variables&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;ST-NMG-006 Variable Overrides Argument: &lt;a href="https://docs.uipath.com/studio/standalone/latest/user-guide/st-nmg-006" rel="noopener noreferrer"&gt;https://docs.uipath.com/studio/standalone/latest/user-guide/st-nmg-006&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;ST-NMG-005 Variable Overrides Variable: &lt;a href="https://docs.uipath.com/studio/standalone/latest/user-guide/st-nmg-005" rel="noopener noreferrer"&gt;https://docs.uipath.com/studio/standalone/latest/user-guide/st-nmg-005&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;About Workflow Analyzer: &lt;a href="https://docs.uipath.com/studio/standalone/latest/user-guide/about-workflow-analyzer" rel="noopener noreferrer"&gt;https://docs.uipath.com/studio/standalone/latest/user-guide/about-workflow-analyzer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Keyboard shortcuts: &lt;a href="https://docs.uipath.com/studio/standalone/latest/user-guide/keyboard-shortcuts" rel="noopener noreferrer"&gt;https://docs.uipath.com/studio/standalone/latest/user-guide/keyboard-shortcuts&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do you run Workflow Analyzer before every publish, or only when something breaks? Tell me in the original forum thread, that's where the discussion is: &lt;a href="https://forum.uipath.com/t/uipath-pitfall-of-the-week-4-a-variable-with-the-same-name-as-your-argument/5786751" rel="noopener noreferrer"&gt;https://forum.uipath.com/t/uipath-pitfall-of-the-week-4-a-variable-with-the-same-name-as-your-argument/5786751&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally posted on the UiPath Forum: &lt;a href="https://forum.uipath.com/t/uipath-pitfall-of-the-week-4-a-variable-with-the-same-name-as-your-argument/5786751" rel="noopener noreferrer"&gt;https://forum.uipath.com/t/uipath-pitfall-of-the-week-4-a-variable-with-the-same-name-as-your-argument/5786751&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Prefer to watch it? Here is the video version: &lt;a href="https://youtu.be/iDeKOYjRn-s" rel="noopener noreferrer"&gt;UiPath Studio: Out Argument Is Nothing After Do + Agent LLM HTTP 403&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I post short UiPath fix videos from real forum questions on my YouTube channel, &lt;a href="https://www.youtube.com/@rpasimplified" rel="noopener noreferrer"&gt;RPA Simplified&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>uipath</category>
      <category>rpa</category>
      <category>studio</category>
      <category>automation</category>
    </item>
    <item>
      <title>UiPath Pitfall #3: Expecting Orchestrator to Retry a Business Exception</title>
      <dc:creator>Pravinraj Vincent</dc:creator>
      <pubDate>Fri, 30 Oct 2026 00:55:15 +0000</pubDate>
      <link>https://dev.to/pravinraj/uipath-pitfall-3-expecting-orchestrator-to-retry-a-business-exception-4f52</link>
      <guid>https://dev.to/pravinraj/uipath-pitfall-3-expecting-orchestrator-to-retry-a-business-exception-4f52</guid>
      <description>&lt;p&gt;Your failed queue item never got retried. Or the opposite: the robot hit the same broken item three times in a row. Almost every time, it comes down to which exception type the item failed with.&lt;/p&gt;

&lt;p&gt;This question shows up on the UiPath Forum every few weeks in one form or another, so it got its own Pitfall of the Week.&lt;/p&gt;

&lt;h2&gt;
  
  
  The mistake
&lt;/h2&gt;

&lt;p&gt;Treating Business and Application exceptions as two labels for the same thing, "failed". Orchestrator treats them very differently.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Application exception&lt;/strong&gt; + Auto Retry turned on for the queue: Orchestrator retries the item, up to the queue's max number of retries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business exception&lt;/strong&gt;: Orchestrator doesn't retry it by default.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's straight from the Set Transaction Status docs. With &lt;code&gt;ErrorType&lt;/code&gt; set to Application, the transaction is retried according to the settings in Orchestrator. With Business, it isn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  It bites in two directions
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;A technical problem thrown as a &lt;code&gt;BusinessRuleException&lt;/code&gt;.&lt;/strong&gt; Say a page timeout or a frozen app ends up in the wrong catch. The item goes straight to Failed and never gets a second chance, even though a retry would probably have worked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A data problem thrown as a plain &lt;code&gt;System.Exception&lt;/code&gt;.&lt;/strong&gt; Missing invoice number, invalid customer ID. The item gets retried, fails the exact same way, and burns runtime. If the failing step is a login with bad credentials, repeated retries can also get the account locked.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  In REFramework, what you throw is the decision
&lt;/h2&gt;

&lt;p&gt;REFramework makes the split for you. In &lt;code&gt;SetTransactionStatus.xaml&lt;/code&gt;, anything thrown as &lt;code&gt;BusinessRuleException&lt;/code&gt; is marked Business, and everything else is marked Application. So the exception type you throw in &lt;code&gt;Process.xaml&lt;/code&gt; decides whether the item gets another shot.&lt;/p&gt;

&lt;p&gt;A data check in &lt;code&gt;Process.xaml&lt;/code&gt; can be as simple as this (VB):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vb"&gt;&lt;code&gt;&lt;span class="k"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;IsNullOrWhiteSpace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;in_TransactionItem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SpecificContent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"InvoiceNumber"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;ToString&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;Then&lt;/span&gt;
    &lt;span class="k"&gt;Throw&lt;/span&gt; &lt;span class="k"&gt;New&lt;/span&gt; &lt;span class="n"&gt;BusinessRuleException&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Invoice number is missing"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;End&lt;/span&gt; &lt;span class="k"&gt;If&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Studio you'd normally do this with an If activity and a Throw activity, but the idea is the same.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I do now
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ask one question before throwing:&lt;/strong&gt; would running this exact item again, unchanged, have a real chance of working? Yes means Application. No (bad or missing data, a business rule the item fails) means &lt;code&gt;BusinessRuleException&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validate input data early&lt;/strong&gt; in &lt;code&gt;Process.xaml&lt;/code&gt; and throw &lt;code&gt;BusinessRuleException&lt;/code&gt; with a clear message. That way the reason shows up in the transaction details instead of a stack trace.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Handle a shared login failure in the Init state&lt;/strong&gt; and stop the job, instead of failing every queue item one by one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Let one layer own retries.&lt;/strong&gt; The note on &lt;code&gt;MaxRetryNumber&lt;/code&gt; in the REFramework &lt;code&gt;Config.xlsx&lt;/code&gt; says it must be 0 when you're working with Orchestrator queues. So leave it at 0 and set retries on the queue itself (Edit queue, Auto Retry section).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retry a single flaky step in place.&lt;/strong&gt; If one step just needs another try right away, wrap only that step in a Retry Scope (&lt;code&gt;Number Of Retries&lt;/code&gt;, &lt;code&gt;Retry Interval&lt;/code&gt;) instead of failing the whole item.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Docs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Business exception vs Application exception: &lt;a href="https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/business-exception-vs-application-exception" rel="noopener noreferrer"&gt;https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/business-exception-vs-application-exception&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Set Transaction Status: &lt;a href="https://docs.uipath.com/activities/other/latest/workflow/set-transaction-status" rel="noopener noreferrer"&gt;https://docs.uipath.com/activities/other/latest/workflow/set-transaction-status&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Managing queues in Orchestrator (Auto Retry): &lt;a href="https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/managing-queues-in-orchestrator" rel="noopener noreferrer"&gt;https://docs.uipath.com/orchestrator/automation-cloud/latest/user-guide/managing-queues-in-orchestrator&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Retry Scope: &lt;a href="https://docs.uipath.com/activities/other/latest/workflow/retry-scope" rel="noopener noreferrer"&gt;https://docs.uipath.com/activities/other/latest/workflow/retry-scope&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where do you draw the line on the gray areas, like a CAPTCHA, an expired password, or a target system down for maintenance? Join the discussion in the original forum thread: &lt;a href="https://forum.uipath.com/t/uipath-pitfall-of-the-week-3-expecting-orchestrator-to-retry-a-business-exception/5785256" rel="noopener noreferrer"&gt;https://forum.uipath.com/t/uipath-pitfall-of-the-week-3-expecting-orchestrator-to-retry-a-business-exception/5785256&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally posted on the UiPath Forum: &lt;a href="https://forum.uipath.com/t/uipath-pitfall-of-the-week-3-expecting-orchestrator-to-retry-a-business-exception/5785256" rel="noopener noreferrer"&gt;https://forum.uipath.com/t/uipath-pitfall-of-the-week-3-expecting-orchestrator-to-retry-a-business-exception/5785256&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I post short UiPath fix videos from real forum questions on my YouTube channel, &lt;a href="https://www.youtube.com/@rpasimplified" rel="noopener noreferrer"&gt;RPA Simplified&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>uipath</category>
      <category>rpa</category>
      <category>orchestrator</category>
      <category>automation</category>
    </item>
    <item>
      <title>UiPath Pitfall #2: Keeping Your Studio Project in a OneDrive Sync Folder</title>
      <dc:creator>Pravinraj Vincent</dc:creator>
      <pubDate>Fri, 30 Oct 2026 00:53:46 +0000</pubDate>
      <link>https://dev.to/pravinraj/uipath-pitfall-2-keeping-your-studio-project-in-a-onedrive-sync-folder-16fe</link>
      <guid>https://dev.to/pravinraj/uipath-pitfall-2-keeping-your-studio-project-in-a-onedrive-sync-folder-16fe</guid>
      <description>&lt;p&gt;If you're getting vague compile errors like a bare &lt;strong&gt;Error code 1&lt;/strong&gt;, or a project runs on one PC and won't open cleanly on another, check where the project folder lives. If it's inside OneDrive or any always-sync cloud folder, that's very likely your problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  The mistake
&lt;/h2&gt;

&lt;p&gt;Putting the live Studio project folder inside OneDrive (or Dropbox, or any folder that syncs all the time) so you can "share" it between machines. It feels convenient. It isn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it bites
&lt;/h2&gt;

&lt;p&gt;Studio writes a lot of files while you work: &lt;code&gt;project.json&lt;/code&gt;, generated files, and a local cache in the hidden &lt;code&gt;.local&lt;/code&gt; folder. A sync client can lock those files, leave some of them online-only, or still be downloading subfolders when Studio tries to compile.&lt;/p&gt;

&lt;p&gt;On the forum that usually shows up as a bare Error code 1, or a project that works on PC1 and won't open on PC2 until someone copies it out of OneDrive. Network and shared drives cause the same kind of pain. Copy the project to a real local disk and it suddenly works.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Keep the working project on a local path.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Studio's default location is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;%USERPROFILE%\Documents\UiPath
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But watch out: if Windows has redirected Documents into OneDrive, that default is a synced folder too. In that case put your projects somewhere that isn't synced, for example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;C:\UiPathProjects\
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Share and version with Git, not by syncing the live folder.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In Studio, go to the &lt;strong&gt;Team&lt;/strong&gt; tab and use &lt;strong&gt;GIT Init&lt;/strong&gt; to add the project to a local Git repository, commit, then push to a remote. TFS and SVN are also supported if that's what your team uses. Studio leaves the &lt;code&gt;.local&lt;/code&gt; folder out of source control by default, so your machine cache stays off the repo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Need a cloud copy just for backup?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Zip or copy the project after you close Studio. Just don't develop inside the synced folder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Don't confuse this with Sync to Cloud.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Studio's &lt;strong&gt;Sync to Cloud&lt;/strong&gt; option syncs your project with Studio Web in Automation Cloud. It has nothing to do with OneDrive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick check
&lt;/h2&gt;

&lt;p&gt;Open File Explorer on your project path. If you see OneDrive sync icons on &lt;code&gt;project.json&lt;/code&gt; or your workflow files, move the project to a local folder before your next publish.&lt;/p&gt;

&lt;h2&gt;
  
  
  Docs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;About automation projects (default location, &lt;code&gt;.local&lt;/code&gt;, Sync to Cloud): &lt;a href="https://docs.uipath.com/studio/standalone/latest/user-guide/about-automation-projects" rel="noopener noreferrer"&gt;https://docs.uipath.com/studio/standalone/latest/user-guide/about-automation-projects&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Adding a project to Git: &lt;a href="https://docs.uipath.com/studio/standalone/latest/user-guide/adding-a-project-to-git" rel="noopener noreferrer"&gt;https://docs.uipath.com/studio/standalone/latest/user-guide/adding-a-project-to-git&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;About version control: &lt;a href="https://docs.uipath.com/studio/standalone/latest/user-guide/about-version-control" rel="noopener noreferrer"&gt;https://docs.uipath.com/studio/standalone/latest/user-guide/about-version-control&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Had a sync folder bite you? Tell me about it in the original forum thread, that's where the discussion is: &lt;a href="https://forum.uipath.com/t/uipath-pitfall-of-the-week-2-keeping-your-studio-project-in-a-onedrive-sync-folder/5783803" rel="noopener noreferrer"&gt;https://forum.uipath.com/t/uipath-pitfall-of-the-week-2-keeping-your-studio-project-in-a-onedrive-sync-folder/5783803&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally posted on the UiPath Forum: &lt;a href="https://forum.uipath.com/t/uipath-pitfall-of-the-week-2-keeping-your-studio-project-in-a-onedrive-sync-folder/5783803" rel="noopener noreferrer"&gt;https://forum.uipath.com/t/uipath-pitfall-of-the-week-2-keeping-your-studio-project-in-a-onedrive-sync-folder/5783803&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I post short UiPath fix videos from real forum questions on my YouTube channel, &lt;a href="https://www.youtube.com/@rpasimplified" rel="noopener noreferrer"&gt;RPA Simplified&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>uipath</category>
      <category>rpa</category>
      <category>automation</category>
      <category>studio</category>
    </item>
    <item>
      <title>UiPath Pitfall #1: Relying on idx in Your Selectors</title>
      <dc:creator>Pravinraj Vincent</dc:creator>
      <pubDate>Fri, 30 Oct 2026 00:53:37 +0000</pubDate>
      <link>https://dev.to/pravinraj/uipath-pitfall-1-relying-on-idx-in-your-selectors-3pih</link>
      <guid>https://dev.to/pravinraj/uipath-pitfall-1-relying-on-idx-in-your-selectors-3pih</guid>
      <description>&lt;p&gt;If your selector works on some runs and fails on others, open it and look for an &lt;code&gt;idx&lt;/code&gt; attribute. Nine times out of ten, that's the problem.&lt;/p&gt;

&lt;p&gt;I see this one on the UiPath Forum constantly, so it was the first thing I wrote up in my Pitfall of the Week series.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why idx breaks
&lt;/h2&gt;

&lt;p&gt;When you indicate an element and Studio can't tell it apart from similar elements, it adds something like &lt;code&gt;idx='3'&lt;/code&gt; to the selector. That works on your screen today. But &lt;code&gt;idx&lt;/code&gt; is just the element's position in the UI hierarchy, nothing more.&lt;/p&gt;

&lt;p&gt;Add a column to a table, get a popup, or have the page load a little differently, and position 3 is now a different element. Or nothing at all. The robot either clicks the wrong thing or times out, and it looks random because it depends on what the screen looked like on that run.&lt;/p&gt;

&lt;p&gt;UiPath's own Workflow Analyzer rule for this, UI-REL-001 (Large Idx in Selectors), says the same thing: the order &lt;code&gt;idx&lt;/code&gt; relies on can change when the elements you're automating change, so it should be avoided.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix
&lt;/h2&gt;

&lt;p&gt;Open the selector in UI Explorer and replace &lt;code&gt;idx&lt;/code&gt; with something that actually describes the element. Good candidates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;aaname&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;automationid&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;innertext&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;webctrl&lt;/span&gt; &lt;span class="na"&gt;tag=&lt;/span&gt;&lt;span class="s"&gt;'BUTTON'&lt;/span&gt; &lt;span class="na"&gt;idx=&lt;/span&gt;&lt;span class="s"&gt;'3'&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you'd aim for something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;webctrl&lt;/span&gt; &lt;span class="na"&gt;tag=&lt;/span&gt;&lt;span class="s"&gt;'BUTTON'&lt;/span&gt; &lt;span class="na"&gt;aaname=&lt;/span&gt;&lt;span class="s"&gt;'Submit invoice'&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the stable value changes a bit between runs, use a wildcard. &lt;code&gt;*&lt;/code&gt; replaces zero or more characters:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;webctrl&lt;/span&gt; &lt;span class="na"&gt;tag=&lt;/span&gt;&lt;span class="s"&gt;'SPAN'&lt;/span&gt; &lt;span class="na"&gt;aaname=&lt;/span&gt;&lt;span class="s"&gt;'Invoice *'&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Modern activities, add an anchor, meaning a nearby label that never moves, so the target is found relative to something stable. Then keep Fuzzy selector or Image as a fallback targeting method in case the strict selector misses.&lt;/p&gt;

&lt;h2&gt;
  
  
  A quick check before you publish
&lt;/h2&gt;

&lt;p&gt;Search your project for &lt;code&gt;idx=&lt;/code&gt;. Every hit is a possible failure in production.&lt;/p&gt;

&lt;p&gt;You can also let Workflow Analyzer do it for you. UI-REL-001 lists every selector with an &lt;code&gt;idx&lt;/code&gt; value above the threshold you set, one by one, so you can work through them before they bite.&lt;/p&gt;

&lt;h2&gt;
  
  
  Docs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;UI-REL-001 Large Idx in Selectors: &lt;a href="https://docs.uipath.com/activities/other/latest/ui-automation/ui-rel-001" rel="noopener noreferrer"&gt;https://docs.uipath.com/activities/other/latest/ui-automation/ui-rel-001&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Selectors with wildcards: &lt;a href="https://docs.uipath.com/activities/other/latest/ui-automation/selectors-with-wildcards" rel="noopener noreferrer"&gt;https://docs.uipath.com/activities/other/latest/ui-automation/selectors-with-wildcards&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;UI Explorer: &lt;a href="https://docs.uipath.com/activities/other/latest/ui-automation/ui-explorer" rel="noopener noreferrer"&gt;https://docs.uipath.com/activities/other/latest/ui-automation/ui-explorer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Advanced descriptor configuration (strict, fuzzy and image targeting): &lt;a href="https://docs.uipath.com/activities/other/latest/ui-automation/advanced-descriptor-configuration" rel="noopener noreferrer"&gt;https://docs.uipath.com/activities/other/latest/ui-automation/advanced-descriptor-configuration&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Got a selector horror story? Share it in the original forum thread, that's where the discussion lives: &lt;a href="https://forum.uipath.com/t/uipath-pitfall-of-the-week-1-relying-on-idx-in-your-selectors/5783645" rel="noopener noreferrer"&gt;https://forum.uipath.com/t/uipath-pitfall-of-the-week-1-relying-on-idx-in-your-selectors/5783645&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally posted on the UiPath Forum: &lt;a href="https://forum.uipath.com/t/uipath-pitfall-of-the-week-1-relying-on-idx-in-your-selectors/5783645" rel="noopener noreferrer"&gt;https://forum.uipath.com/t/uipath-pitfall-of-the-week-1-relying-on-idx-in-your-selectors/5783645&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I post short UiPath fix videos from real forum questions on my YouTube channel, &lt;a href="https://www.youtube.com/@rpasimplified" rel="noopener noreferrer"&gt;RPA Simplified&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>uipath</category>
      <category>rpa</category>
      <category>automation</category>
      <category>selectors</category>
    </item>
  </channel>
</rss>
