Steps to reproduce
-
Install Obsidian 1.12.5 with installer 1.12.5 on Windows 11
-
Enable the Command line interface toggle in Settings → General and click Register
-
Have a Windows user account whose display name contains spaces (e.g.
Sugar Mask) while the system username folder is different (e.g.C:\Users\sugar) -
Additionally, have
Obsidian.exeset to “Run as administrator” via Properties → Compatibility tab -
Open Obsidian with a vault loaded
-
Open a non-admin PowerShell and run
obsidian version
Expected result
The CLI connects to the running Obsidian instance and returns the version number, e.g.:
text
1.12.5 (installer 1.12.5)
Actual result
The CLI fails with:
text
The CLI is unable to find Obsidian. Please make sure Obsidian is running and try again.
Additionally, Obsidian itself repeatedly shows the toast notification:
text
Retry limit reached, stopping retries
Root causes identified (two separate bugs)
Bug 1 — Named pipe uses display name instead of system username
The CLI creates a named pipe using $env:USERNAME, which on this system resolved to Sugar Mask (the Windows account display name, which contained a space):
text
\\.\pipe\obsidian-cli-Sugar Mask
The Obsidian.com shim was unable to connect to a pipe whose name contained a space. This was confirmed by running:
powershell
Get-ChildItem \\.\pipe\ | Where-Object { $_.Name -like "*obsidian*" }
# Output: obsidian-cli-Sugar Mask
Workaround applied: Renamed the local Windows account from Sugar Mask to sugar using:
powershell
Rename-LocalUser -Name "Sugar Mask" -NewName "sugar"
After restarting the session, the pipe was correctly created as obsidian-cli-sugar, but the CLI still failed.
Bug 2 — CLI cannot connect when Obsidian runs as administrator
Obsidian.exe had “Run as administrator” checked in its Compatibility properties. This caused Obsidian to run as an elevated process while Obsidian.com (the CLI shim) ran as a normal user process. Windows blocks named pipe communication between processes of different privilege levels, so the CLI shim could not connect to the pipe even though it existed and had the correct name.
Workaround applied: Unchecked “Run as administrator” in Obsidian.exe → Properties → Compatibility. After restarting Obsidian normally, the CLI connected successfully:
powershell
PS C:\Users\sugar> obsidian version
1.12.5 (installer 1.12.5)
Environment
-
OS: Windows 11
-
Obsidian version: 1.12.5
-
Installer version: 1.12.5
-
Early Access: enabled
-
Catalyst license: Insider
-
Account type: Local Windows account
-
Shell used: Windows PowerShell (non-admin)
Additional notes
-
The in-app updater (updating from a previous installer version) does not generate
Obsidian.comcorrectly on Windows. A fresh download of the full installer from the insider Discord channel was required to get a functionalObsidian.com. -
The “Retry limit reached, stopping retries” toast appears repeatedly when the CLI toggle is active but the pipe connection fails, with no clear guidance to the user about the actual cause.
-
Deregistering the CLI via the toggle also sometimes fails with “Retry limit reached”, requiring manual PATH cleanup via PowerShell.
Suggested fixes
-
Bug 1: Use
$env:USERPROFILEleaf or the SAM account name (not the display name) to build the pipe name, so usernames with spaces do not break the connection. -
Bug 2: Add a detection mechanism in
Obsidian.comthat warns the user when Obsidian is running as administrator and the CLI is not, since this silently breaks communication. -
Improve the error message
"The CLI is unable to find Obsidian"to include common causes (Obsidian not running, privilege mismatch, pipe name mismatch).