Summary
Hi community,
A dispatcher process of mine that has run unchanged since May 2026 started returning files from subfolders on the first run after the weekend of 22/23 August 2026, despite Include Subfolders being set to False. Nothing was republished, nothing changed in SharePoint, and all our virtual machines (and my local development machine) show the same results. Looking for confirmation from anyone seeing the same, and ideally from UiPath on whether the enumeration strategy inside this activity is controlled server side.
Environment
- Studio 25.10.13 LTS, Windows target framework, project type Process
UiPath.MicrosoftOffice365.Activities3.7.10UiPath.IntegrationService.Activities[1.24.0] (strict)UiPath.System.Activities26.2.4- Orchestrator Cloud, unattended Windows robots
- Activity: For Each File/Folder -
UiPath.MicrosoftOffice365.Activities.Files.ForEachFileFolderConnections
What the process does
A “cleaner” runs hourly. It checks Orchestrator for Running or Pending jobs of a performer process. If any exist it exits. If not, it waits 5 minutes (to cover the event trigger polling interval), re-checks, and then loops over three dedicated SharePoint folders. For every .txt file found it starts a performer job, passing the folder name and file name as input arguments. It exists as a safety net for files the O365 event trigger occasionally misses.
Each of the three For Each File/Folder activities is configured identically:
Include Subfolders = False
What to return = Files
Filter (advanced) = FileExtension Equals "txt"
Item selection mode = ItemUrl
Each dedicated folder contains a done subfolder used as an archive, holding several months of processed files.
Intended vs actual
Intended: the loop returns only the loose .txt files sitting in the root of each dedicated folder, not picked up by the event triggers in Orchestrator, typically 0 to 4 per day.
Actual since 24 August: the loop returns everything below the folder as well, including the done archive. One run found 206 files across the three folders and queued 206 performer jobs. The performer then failed to find each file in the folder root and exited, so no data damage, but 200+ wasted runtimes regardless.
Timeline
All times UTC. Runtime is a clean proxy here, since the workflow does nothing but the 5 minute wait when it finds no files.
Fri 21 Aug 19:30 05m24s last good run
Mon 24 Aug 04:30 24m37s first bad run, 206 files
Mon 24 Aug 05:30 25m28s
Mon 24 Aug 06:30 24m59s
Every run from 18 to 21 August took ~5m25s. The break is between Friday evening and Monday morning. Logs for one good and one bad run are attached.
What we have already ruled out
- Package change. The process package was published 26 May 2026 and is still the live version, no changes were published on our end recently.
- Workflow misconfiguration. The XAML was re-read line by line. All three loops still carry
IncludeSubfolders="False"andWhatToReturn=Files. - SharePoint changes. The folder structure is untouched. One of the three folders is a dormant test folder that has not been modified in months and it is affected too.
- Files having been moved. The performer logs a download error for each file, proving the files are still physically in the
donesubfolder and the loop is genuinely recursing. - Deprecated dependencies. The dependency is declared as
3.7.10, however the issue persists on a newer version, I tested and got the same result on3.11.10on a completely separate dummy/testing process. Also reproduces the same result on an older version,2.9.10. - A single bad robot. Four unattended robots are in the pool. One of them ran the job successfully on Friday afternoon and incorrectly on Monday morning. All are affected.
What we found inside the activity package
Inspecting UiPath.MicrosoftOffice365.dll from 3.7.10, the activity appears to have two enumeration paths, and which one it takes is decided at runtime:
GetEntitiesAsyncIteratorUsingSearchApi
SupportsSearchApiAsync
SearchApiLocationAndBelowFilterTemplate
SearchApiFilesOnlyTemplate
The scoping template is named LocationAndBelow, which is recursive by definition. On that path Include Subfolders = False cannot be expressed in the query and would have to be applied client side afterwards.
The same assembly also ships a feature flag client with updatable flags:
FeatureFlagClient`1+<GetSnapshotAsync>
FeatureFlagsUrlFormat
SetUpdatableFlags
That would explain a behaviour change across every robot at once, overnight, with no deployment on our side. This is inference rather than something we can verify, hence the post.
Questions
- Has anyone else seen a filtered For Each File/Folder start including subfolders since roughly 22/23 August 2026?
- Is the Search API code path in this activity gated by a server side feature flag or by connector capability negotiation? If so, was anything rolled out this past weekend?
- Is
Include Subfolders = Falseintended to be honoured on the Search API path, or is it only enforced on the plain children listing path? If the latter, that looks like a bug rather than a configuration issue. - As a workaround, does removing the advanced filter and filtering the extension inside the loop body reliably keep the activity on the non recursive children listing? That is what we plan to test.
Any confirmation or pointers appreciated. Happy to provide more detail or raise a support ticket with the full traces. I’ve included the exported logs of a ‘happy path’ and a ‘bad run’ as well.
robot-logs-2026-08-24-09-29-26-460-767611.zip (897 Bytes)
robot-logs-2026-08-24-09-28-31-937-767608.zip (8.7 KB)
