Sync with External Folder failing to check on project open

I have more than one project using Scrivener v3 (the Mac App store version). I use the feature of Sync with External Folder. I have the settings checked so that the project should sync when I open the project, and sync when I close the project. These folders are on my internal drive. The Projects though are either on Dropbox or on the internal drive. Either way the following behavior afflicts me:

  • When I close the project, it syncs with the external folder. This is what I want and expect.
  • BUT, when I open the project, it does not sync with the external folder. It does not check the external folder to see if anything has changed.

I then must remember to sync manually with the external folder. This works as I want and expect.

Is this a known problem with the Mac App Store version? Or is this a bug?



I’m afraid I cannot reproduce this. I just tried setting up an external folder with a project using the Mac App Store version, then I closed the project and added some text to one of the files. Upon reopening the project, I was notified that there were changes in the external folder, as expected.

Could there be any other factors involved?

All the best,

I found the problem and think it was something I did wrong.

To fix, I disassociated the Folder from the project(s) and created a new folder to sync to. Now opening the projects checks as it should.

I’m glad you got it sorted! That’s still strange that you were seeing that behaviour, though. I’m wondering if the folder bookmark somehow became corrupt. Under sandboxing (so this only affects the Mac App Store version), in order for an app to access a file or folder, one of the following conditions needs to be set:

  1. The user has granted access using the Open or Save panel in the current session.

  2. The app has stored a security-scoped bookmark to the location after the user granted access using the Open or Save panel during a previous session.

So for Scrivener to be able to access the external folder and check it on launch, the bookmark it has cached needs to resolve properly. If it doesn’t, then Scrivener cannot check. Selecting another folder would create a new bookmark which might explain why it now works. On the other hand, if the bookmark wasn’t working, then Scrivener shouldn’t have been able to save your changes to the folder on quit, either - very odd. Well, I’m glad you’re up and running anyway.

All the best,

Busted again.

Worked for awhile, then I made some changes in the rtf files in the Sync folder (using LibreOffice to make the changes). When I reopened the project in Scrivener, it did not report any changes nor offer to sync. I then manually made it sync. Paragraphs that had no numbering applied, now did have numbering applied. Oh well.

So I did it over: closed and relaunched Scrivener, opened the project, disassociated the External Sync Folder, created a new one from the window Scrivener launches when I click “Choose…” in the Sync with External Folder panel, and chose sync. It seemed to sync. I then closed the project; it sync’d again. I then reopened the project having done nothing to the files in the external folder - I did not even leave Scrivener. And I got the dialog box, “Changes found in External Sync Folder, would you like to sync now?”

Repeating: I had done nothing to the external folder nor even left Scrivener. This time I chose not to sync.

I hope this might give you a clue as to what is going on. I wish now I had bought the non-App store version. I can only think that it is some App Store wonkiness at play here.

For the record, I am now on the latest version of macOS released April 25 2018: 10.13.4 (17E202)

A-ha - I’ve found the issue. Scrivener isn’t telling the sandbox it wants access to the folder URL for the checks, so the contents of the folder aren’t available for checking. (Scrivener will have access for the entire session after you have selected the folder, which is why it works after the you change the folder - until you quit and restart the app.) I have fixed this for the next update. In the meantime, you can work around the issue by select “Authorize Folder Access…” from the “Scrivener 3” menu and adding your external sync folder to the list of authorised directories. This ensures Scrivener has sandbox access to the folder regardless.

It’s possible you then might see the notification that there have been changes in the external folder every time you open the project, though. This is what I saw in my tests a moment ago. Bizarrely, a comparison of two modification dates is returning a result of them being different even when they are identical. This seems to be a new macOS bug, although I’m not sure if it’s specific to my system. If you do see that, don’t worry to much as I’ve implemented a workaround for the next update.

All the best,