[BUG] Files containing double quotes (“) or question mark (?) do not sync to Android

Steps to reproduce

  • Using the Mac desktop app, create a file containing ? or " in the filename
  • Enable sync with Android (iOS untested)

Expected result

Files syncs to mobile and is accessible within the app

Actual result

FILE_NOTCREATED error


(I use quotation marks to denote that the note is dedicated to an article on the web - it makes the difference clear in e.g. graph view)

Environment

  • Operating system: Android 11, MacOS Catalina
  • Obsidian version:
    • Android 1.0.4
    • Desktop v0.12.12

Relevant discussions:

There were a few threads that reported this bug, but they were marked as fixed. The only remaining discussions are specific to creating notes on mobile, not creating the note on desktop then attempting to sync it to mobile.

(Marked as fixed)

(Marked as fixed)

(Open, specific to creating notes)

That’s not a bug. Android does not support file with names that contain ? or ". We can’t sync those files. If you use mixed OSes, it is up to you to name your notes properly so they are compatible.

(We used to enforce a common ground but users didn’t like that)

Android sure does:

The only thing people often forget: Like with Linux, it depends on the filesystem used! On Android, the internal storage usually uses ext4 (on which all the above works without any problems). Users often format their SD cards (external storage) using the FAT32 filesystem, which doesn’t allow characters like above.

So if you format your SD card using ext4, you’ll have no problems. Except that you can’t (easily) access them in a card reader on Windows.

Alternatively, if your synced vault isn’t too large, you can store it on the internal storage.

Don’t know if Obsidian Sync supports this correctly, but it should. (Syncthing does.)

Otherwise @WhiteNoise is correct, of course: Know your OS and your filesystem types, and avoid things that might be incompatible when mixing.

No, this is not an issue of internal or external. Android has restriction on top of the filesystem used and we have (and the api we use) to honor them. Syncthing uses a lower level api and it doesn’t respect the Android spec. This is their decision.

Gotcha, I didn’t know Android had these restrictions. Might be helpful to let users of Sync know when they are creating a note containing characters that won’t work on all OSes. I’ll remove the invalid characters from my note names.

1 Like

Simplest solution is the previous restriction on using invalid characters in names.
Since many disliked that, a toggle choice might be best.

I habitually avoid characters invalid in any OS or file system I might conceivably use, but I suspect for those not used to doing that it would be simplest to remove the option.