Vinzent03 / obsidian-advanced-uri

Advanced modes for Obsidian URI
MIT License
767 stars 44 forks source link

Potential file loss? #40

Closed jonasdiemer closed 1 year ago

jonasdiemer commented 2 years ago

Hi,

I am using Advanced URI on iOS in my shortcut to append a clipping (e.g. website) to my Daily Note like this:

obsidian://advanced-uri?daily=true&mode=append&data=

My vault is synced between Mac and iOS via iCloud. Today (and I think also yesterday) I noticed that my daily note got overwritten by my iPhone - theory is that the following happened:

  1. I wrote the note on Mac
  2. I ran the Shortcut, i.e. asked advanced-uri to append to my daily note
  3. Instead of downloading the note from iCloud, advanced-uri saw it was missing and created it (I hadn't opened Obsidian on iOS on that day)
  4. Boom

Not sure Advanced URI is the culprit, but maybe you could have a look if the above theory could be plausible and fixed from advanced URI side (e.g. change step 3).

Vinzent03 commented 2 years ago

Sorry, but I don't think that I can do anything for you. I can't control the syncing of iCloud. I'm not familiar with iCloud, but you could ask on the forum or discord for help.

jonasdiemer commented 2 years ago

Thanks for the quick response. Looks like the forum is full of issues with iCloud :( I have opened a thread there: https://forum.obsidian.md/t/bug-icloud-sync-issue-file-loss-via-community-plugin/29923

Just noticed when opening Obsidian on iOS that it shows "waiting for syncing with iCloud" (or similar) in the beginning. Might this be something Advanced URI could "block on" before attempting to access the Daily Note? Or maybe it has to be done from the mobile app...

coddingtonbear commented 2 years ago

Incidentally, this is less of an icloud problem and more of a problem of generated (in this case: daily) notes and synchronization in general If you're using obsidian-sync, it's possible for you to get into the exact same conflict scenario (I've run into it myself!), I'm absolutely sure you can run into it with obsidian-git having used it as well, and I can't imagine the same problem isn't possible when using an external synchronization tool like Dropbox.

In any case, the way I get around this is by opening Obsidian first and waiting for its synchronization to complete before attempting to use an advanced-uri on my mobile device. I'm afraid that's almost certainly the only workable general solution -- how could the plugin possibly know when an entirely-external sync process (e.g. Dropbox) was complete?. On the bright side, it does seem remotely possible that the folks at Obsidian might provide an API someday in the future that allows plugins to at least be aware of obsidian-sync's synchronization state, but I don't believe any such API exists at the moment.

jonasdiemer commented 2 years ago

Thanks, Adam - this is what I was thinking initially. I agree it should be possible to expose the sync status to avoid such issues. Or alternatively Obsidian could block/defer plugins (or rather certain actions of them) while sync is ongoing.

Hope this will be addressed soon.

Am 21.01.2022 um 18:50 schrieb Adam Coddington @.***>:

 Incidentally, this is less of an icloud problem and more of a problem of generated (in this case: daily) notes and synchronization in general If you're using obsidian-sync, it's possible for you to get into the exact same conflict scenario (I've run into it myself!), I'm absolutely sure you can run into it with obsidian-git having used it as well, and I can't imagine the same problem isn't possible when using an external synchronization tool like Dropbox.

In any case, the way I get around this is by opening Obsidian first and waiting for its synchronization to complete before attempting to use an advanced-uri on my mobile device. I'm afraid that's almost certainly the only workable general solution -- how could the plugin possibly know when an entirely-external sync process (e.g. Dropbox) was complete?. On the bright side, it does seem remotely possible that the folks at Obsidian might provide an API someday in the future that allows plugins to at least be aware of obsidian-sync's synchronization state, but I don't believe any such API exists at the moment.

— Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android. You are receiving this because you authored the thread.

Vinzent03 commented 1 year ago

I'm closing this as there's nothing I can do from my side.