Symlinks being auto deleted on android app

Steps to reproduce

  1. Create a symlink ln -s README.md AGENTS.md
  2. Open the synced Obsidian vault via Android app

Expected result

I would expect a warning or some information presented about how symlinks will be treated.

Actual result

Symlinked files and folders get deleted silently. I only noticed because I was getting git merge conflicts via termux git status logs.

It’s highly recommended to not use symlinks in Obsidian, limitations and issues are documented here

I’m not asking for help, I’m informing that it’s a bug on Obsidian’s part to perform a destructive action on some of the user’s vaults without any notifications.

Yes I found the documentation AFTER my files got deleted and I went to look for the reason why.

Obsidian can easily call new Notice()when doing something like this, similarly how obsidian forbids creating files containing : and other symbols

The deletion likely happened because one system saw the symlink as a regular file and another did not see anything. Sync thought the file was deleted and propagated the deletion.

I personally do not consider this a bug because we don’t support file symlink and we also don’t support symlink to locations within the vault.

Maybe you can open a FR asking us to to add recurrent scan for symlinks + notice if we do find a symlink in the vault.

i’d like to add — on android, you can’t create symlinks in /sdcard (which is symlinked to /storage/emulated/0) because, as the target’s pathname suggests, the “internal storage” that apps can see and access is actually an emulated FAT32/vFAT filesystem, which doesn’t support symbolic or hard links. the actual backing directory is located at /data/media/0, though the last path segment may be a different, higher number if you have multiple user profiles on your device. do keep in mind, however, that this directory is inaccessible to you if your device isn’t rooted, because otherwise apps would just be able bypass storage permissions altogether…..

if you ARE rooted though, you can just run the same command as superuser/root in /data/media/0/<vault-path> : )

Thanks for the thorough explanation. Fault is on my part assuming Obsidian did the deleting. As I understand on sync the file never got created making it look like it was deleted and then the backwards sync broke it on the desktop/laptop side.