Windows media controls show Obsidian as "Unknown app"

Steps to reproduce

  1. On Windows 11, open the sandbox vault (or a new empty vault with no community plugins).
  2. Add any audio file to the vault and embed it in a note, e.g. ![[tone.wav]].
  3. Play it from the embed.
  4. Open the media controls (Quick Settings with Win+A, or the media flyout that appears when you change the volume).

Did you follow the troubleshooting guide?

Y. Reproduced in a fresh vault with no community plugins, no theme, and no snippets (restricted mode on).

Expected result

The media controls show “Obsidian” with Obsidian’s icon, like other installed apps.

Actual result

The media controls show “Unknown app” with a blank icon. Play and pause from the controls still work. The track title is the window title (e.g. “Audio test - Blank-Media-Test - Obsidian 1.15.0”).

Environment

SYSTEM INFO:
	Obsidian version: 1.15.0
	Installer version: 1.14.5
	Operating system: Windows 11 Home 10.0.26300
	Login status: logged in
	Language: en
	Catalyst license: supporter
	Insider build toggle: on
	Live preview: on
	Base theme: adapt to system
	Community theme: none
	Snippets enabled: 0
	Restricted mode: on

RECOMMENDATIONS:
	none

Electron 43.8.3, Chromium 150.0.7871.250.

Additional information

I think the cause is a mismatch between two app IDs (AppUserModelIDs). Windows names a media session by looking up the Start menu shortcut whose AppUserModelID matches the one the playing process reports:

  • The Start menu shortcut the installer creates (%APPDATA%\Microsoft\Windows\Start Menu\Programs\Obsidian.lnk) has the AppUserModelID md.obsidian.
  • The running app reports electron.app.Obsidian, which is Electron’s default when an app doesn’t set its own. I read this from the session list Windows exposes (GlobalSystemMediaTransportControlsSessionManager, property SourceAppUserModelId).

No shortcut has electron.app.Obsidian, so Windows falls back to “Unknown app”.

A likely fix is to call app.setAppUserModelId('md.obsidian') in the main process before any window is created. Other Electron and Tauri apps fixed the same “Unknown app” label this way; they found the call has to come before window creation to take effect.

This affects anything that plays media in Obsidian, since the ID belongs to the whole process: audio and video embeds, the web viewer, and plugins that play audio. I noticed it with a text-to-speech plugin, then confirmed it with a plain audio embed in a plugin-free vault.