PLA_E_EXE_PATH_NOT_VALID (0x80300108) Fix – Executable Path Missing
This error means Windows Performance Logs & Alerts can't find the .exe you specified. Nine times out of ten it's a typo or deleted file. I'll show you where to check and what to change.
Cause #1: The executable was deleted or moved after you created the Data Collector Set
This is the most common cause – you set up a Data Collector Set weeks ago, pointed it at some tool like C:\Tools\mycollector.exe, then later deleted or moved that tool. When the Performance Logs & Alerts service tries to launch it, it hits 0x80300108 and bails.
Here's what's actually happening: the Data Collector Set stores the full absolute path to the executable. It does not check if that path exists at creation time – it only checks at runtime. So you can create a set pointing to a non-existent file, get no error, then get this code when it fires.
How to find which data collector holds the bad path
- Open PerfMon (
perfmon.msc). - Expand Data Collector Sets → User Defined.
- Right-click your set → Properties.
- Go to the Task Scheduler tab if it's scheduled. But more likely, you'll find the bad path in an individual collector.
- Expand the set, then click each collector under it. Look for ones that say Performance Counter Alert or Command Line Collection.
- Double-click a collector. If it's a command-line collector, the Executable field shows the path. If that file doesn't exist, you've found the culprit.
Fix: Update or remove the bad path
Your options:
- If the executable exists elsewhere: Browse to the correct location and update the path. Click Browse and pick the real .exe.
- If the tool is gone for good: Delete that collector from the set. Right-click it → Delete. The set will run without it.
- If you don't need the set anymore: Delete the whole set. Right-click it → Delete.
# You can also do this via command line with logman:
logman query "YourSetName" /collectors
# Then to delete a collector:
logman update "YourSetName" -collectors "BadCollectorName" -delete
I've seen this happen most often with Sysmon collectors and third-party monitoring tools that get uninstalled but leave the Data Collector Set behind.
Cause #2: The path contains an environment variable that isn't resolved at runtime
This one's trickier. You might have typed %ProgramFiles%\SomeTool\tool.exe thinking Windows would expand the variable when the collector runs. But the Performance Logs & Alerts service runs under the Local Service account, which has a different environment than your user account. %ProgramFiles% usually works, but %LOCALAPPDATA% or %USERPROFILE% will resolve to the service's directories, not yours.
The real problem: the service's %USERPROFILE% points to C:\Windows\ServiceProfiles\LocalService, and your tool isn't there.
Fix: Use the full absolute path
- Open the collector properties as described above.
- Replace the environment variable with the actual path. For example, change
%ProgramFiles%\MyTool\collect.exetoC:\Program Files\MyTool\collect.exe. - If you must use a variable, use
%ProgramFiles%(which is safe) or%SystemRoot%. Avoid%USERPROFILE%,%LOCALAPPDATA%,%APPDATA%.
If the tool needs to run in the user's context, don't use a Data Collector Set – create a scheduled task instead. Data Collector Sets are designed for system-level monitoring.
Cause #3: The executable path has a space and isn't quoted properly
Windows is surprisingly lenient about quoted paths in most places, but the Performance Logs & Alerts service fails hard here. If your path contains a space (like C:\Program Files\MyApp\app.exe) and you didn't wrap it in double quotes, the service tries to start C:\Program and fails with 0x80300108.
This happens because the service uses CreateProcess under the hood, which splits the command line on spaces. Without quotes, it treats C:\Program as the executable.
Fix: Add double quotes around the executable path
- Open the collector properties.
- In the Executable field, wrap the path in double quotes:
"C:\Program Files\MyApp\app.exe". - If you also pass arguments, put them outside the quotes:
"C:\Program Files\MyApp\app.exe" -arg1 -arg2. - Click OK and test the set again.
Quick-reference summary table
| Cause | Trigger scenario | Fix |
|---|---|---|
| Executable deleted or moved | Uninstalled a monitoring tool but left the Data Collector Set | Update path or delete the collector |
| Environment variable not resolved | Used %USERPROFILE% in the path |
Replace with absolute path |
| Unquoted path with spaces | Path like C:\Program Files\tool.exe without quotes |
Wrap executable path in double quotes |
If you've checked all three and still see the error, open Event Viewer (eventvwr.msc), go to Applications and Services Logs → Microsoft → Windows → Diagnosis-PLA → Operational. The event log there will tell you the exact collector and path that failed. That's your final debugging tool.
Was this solution helpful?