Obsidian 1.7.7 doesn't start: An error occurred while loading Obsidian. Error: ENOSPC: System limit for number of file watchers reached

Once you’ve done the above, delete everything above this line.

Steps to reproduce

  1. Download any type of Obisidian 1.7.7 on Pop!_OS by System76 Linux.
DISTRIB_ID=Pop
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Pop!_OS 22.04 LTS"
  1. Open app
  2. See error

Did you follow the troubleshooting guide? [Y/N]

Y.

Expected result

Obsidian should work.

Actual result

Obsidian doesn’t start. Even on empty vault. Instead it shows error: “An error occurred while loading Obsidian. Error: ENOSPC: System lmit for number of file watchers reached”

Environment

$ ./Obsidian-1.7.7.AppImage 
2024-11-30 11:33:47 Loading main app package /tmp/.mount_ObsidiTc1jnd/resources/obsidian.asar
2024-11-30 11:33:48 Checking for update using Github
2024-11-30 11:33:48 Success.
2024-11-30 11:33:48 Latest version is 1.7.7
2024-11-30 11:33:48 App is up to date.
[63357:1130/133348.984091:ERROR:mime_util_xdg.cc(137)] Invalid mime.cache file does not contain null prior to ALIAS_LIST_OFFSET=44

No command line or debug info can be opened because the app won’t start.


Additional information

The original vault with settings and all (.deb version):

Fresh installation with flatpak (system app market):

Fresh installation with test vault and AppImage version:

Right now I cannot use Obsidian on Linux at all.

Also tested versions 1.7.6 and 1.7.5. Same result. But for some reason command line shows “Latest version is 1.7.7” and “App is up to date.” so maybe those self-upgraded.

FYI I think I have solved this with following.

sudo nano /etc/sysctl.conf

Add to the last line:

fs.inotify.max_user_watches=524288

Apply the changes:

sudo sysctl -p

I think in Pop_OS! system upgrade there was a configuration change. But shouldn’t Obsidian take this into account or is it purely a Linux system related issue?

For me it was the fs.inotify.max_user_instances limit set by default at 120 that was too low.