Last Updated:
07 Oct 2026 10:51
by ADMIN
Fiddler Everywhere 8.2.0 hangs because startup PowerShell commands load the user's profile
Product: Fiddler Everywhere 8.2.0
Operating system: Windows 11 x64, build 10.0.26300
Installation type: Machine-wide installation under C:\Program Files
Impact: Application cannot start without modifying the user's Windows PowerShell profile
SYMPTOM
Fiddler Everywhere initially hangs indefinitely on the splash screen. After
working around that stage, it gets past the splash screen but remains
indefinitely on the application's loading spinner.
The issue reproduces on two separate Dev Box environments belonging to the
same user. A colleague with an otherwise equivalent environment does not
experience it.
ROOT CAUSE
Fiddler launches two Windows PowerShell commands during startup without
-NoProfile or -NonInteractive:
1. A Get-CimInstance Win32_Process query used to locate stale cleanup/backend
processes.
2. A Get-WmiObject query for Win32_BIOS, Win32_DiskDrive, and Win32_Processor,
used to calculate the Telerik machine ID.
The user's Microsoft.PowerShell_profile.ps1 is stored under a OneDrive-
redirected Documents folder and therefore follows the user to both Dev Boxes.
The profile performs interactive initialization that blocks or interferes with
these noninteractive child processes.
The first PowerShell command prevents Fiddler from progressing past:
Ensure no running cleanup nodejs and cleanup .net processes.
After bypassing the profile for that command, Fiddler starts its .NET backend
but remains on the loading spinner. The second PowerShell command never
completes the Telerik machine-ID lookup, so the Electron main process never
returns config-data to Angular.
ProcMon confirmed that Fiddler launches:
powershell.exe /c "... Get-CimInstance -className win32_process ..."
and later:
powershell.exe -nologo -Command "... Get-WmiObject Win32_BIOS ..."
The second-stage electron log reports "Retrieved mid/hmid" but never reports
"Retrieved tmid". The Angular renderer remains waiting for config-data.
WORKAROUND
I added a small guard to Microsoft.PowerShell_profile.ps1 that returns without
loading the interactive profile only when the PowerShell command line contains:
Get-CimInstance -className win32_process
or:
Get-WmiObject Win32_BIOS
With those two exact exclusions:
- Fiddler Everywhere fully loads.
- The normal interactive PowerShell profile still works.
- The fix works with the profile synchronized through OneDrive.
EXPECTED BEHAVIOR
Fiddler should start regardless of interactive customization in the user's
PowerShell profile.
RECOMMENDED PRODUCT FIX
Launch both PowerShell subprocesses with:
-NoProfile -NonInteractive
Also apply a finite timeout, terminate the child process when the timeout is
reached, and log a clear error instead of waiting indefinitely.
For the machine-ID command, treat timeout, unexpected profile output, invalid
JSON, and WMI failure as recoverable and use the existing fallback identifier.