Hi. In one of my scrivener files I cannot do snapshots. I always get the error message ‘Snapshot failed to write to disk’. The file is large-ish (279.6MB). Is that the reason? In the past I have used the snapshot feature with this same file, and there are no problems with snapshot in other scrivener files I have used.
What might be the cause and how can I fix it?
You seem to be using the word “file” to refer to both the entire project (which is actually a folder with potentially thousands of files inside of it) and the thing you’re taking a snapshot of, so I’m not sure which facts match which usage—but if you’ve got a 300mb file in your Binder that you are trying to take a snapshot of, then that could be the problem. That’s a massive file for a text document, can it not be cut up into smaller chunks so that snapshots only duplicate the relevant portions edited?
If you mean the project is 300mb then as you might guess from the above, that doesn’t really matter. Snapshots are of chunks of text, or files, in the binder, not the entire project. Permissions, the disk running out of space, even a bad USB cable could be to blame for an inability to write to the disk, so it’s hard to say with only the data that the Mac is refusing to let Scrivener write to the disk (and unfortunately the Mac isn’t very specific about why, either).
I would explore permissions and disk space first, those are the most common issues.
Thanks Amber. I did use the wrong terminology. The project is 300Mbs, not the file. My disk doesn’t appear to be out of space either, and all of my other projects don’t have this problem. In fact the particular project I am having the trouble with has never had this kind of problem before; the ‘snapshot won’t write to disk’ is a very recent development in a project that I have been working in for about six years.
I looked up the permissions for the project and they look okay to me. Any other ideas?
All right, in that case it could be something with the file itself. If you create a temporary blank project and open it alongside the main project you can drag the file you are trying to snapshot into the blank project’s binder. Try snapshots from the test project and see if that works. If it doesn’t work there, would that test project with the one file in it be something you can send in to support for us to take a look at?
Interestingly, file document has lost all of its snapshots. It must have happened when my computer crashed at some point and when it was rebuilding the indexes. Do you think my old snapshots are lost forever or is there some way to retrieve them?
At the very minimum you should be able to recover to the last backup made of the project (see §7.11.4, Restoring from Backups, pg. 69 of the user manual). But I would first take a look at the project itself in Finder, while it is closed. Right-click on the project select Show Package Contents from the contextual menu. Do you see a folder called “Snapshots” at the top level within the project? If you drill into some of the subfolders within that, does everything appear to be in order?
Interesting. The snapshots folder is an alias, and if I click on it it gives me an error message, saying the original can’t be found. The same is true for the oldest backup I could find.
In another project file the snapshots were all there.
At this stage in the process losing the snapshots isn’t the biggest loss in the world (although it is a concern for the future as I do use the feature quite a lot). Is there a way to regain the ability to make new snapshots though? Maybe my manually creatign a snapshots folder?
Thanks, I appreciate the help
An alias, that is very strange. There is nothing in Scrivener itself that would do that, unless you found some very rare and probably quite convoluted bug.
Finding an alias there kind of reminds me of how Time Machine used to work, where something like a Scrivener project would not have its entire contents stored as a Time Machine snapshot, but rather only the pieces that were changed in the past hour would be backed up. The rest would all be “aliases” of a sort that point to the last most recent physical copy of that file. Consequently if you dragged a project directly out of the Time Machine disk instead of using its restoration feature (which would back-trace all of those links and resurrect a full copy), you’d get partial data. I say used to, the last time I saw a result like that first-hand was in the 10.5 days, right after the feature came out. I think since then Apple has switched to using hard links which when copied in Finder will act as the original file, rather than a link (or they might have changed how hard links work in Finder, either way). I still wouldn’t advise pulling data straight out of the TM disk though.
So with that trivia in mind, could there be any backup software in the mix that might have caused a result like that, and particularly so if the project was restored using that system, at any point? If so I’d look into the settings, maybe get in touch with their support and see if they’d use aliases for anything.
Yes, I would just remove the alias from the project package (no need to create your own folder, that will be done for you). Snapshots are pretty robust in that they aren’t integrated with the rest of the project. You can for example safely delete the snapshot folder inside of a project to wipe out all of your snapshots (I do that in fact whenever I publish a copy of our user manual projects). So as you say, this is a loss of redundant data rather than a threat to the project. Sorry it happened, nonetheless.
Definitely keep tabs on it for a while, but this one is probably in the “lightning strike” category of weirdness.
Thanks. I did that and I can now take snapshots again. If I do find an old snapshot folder in one of the backups, coudl I theoretically put that snapshot folder in place, or could that cause irreparable harm?
Short answer: Yes, given how snapshots work, that should in theory be safe. Obviously for an operation like that you’d want to work on a duplicate copy of the project just in case theory breaks down.
Long answer: The Snapshots folder is purely additive, this is what I meant by them not being integrated with the project. Worst case you might end up with some snapshots assigned to the wrong items or magically appearing as assigned to new items you create. Basically, since a snapshot is only associated to the original item by its internal ID number, if you were to delete that item (fully, emptying the trash as well), then that frees up the number for future use. Let’s say that’s “43.snapshots”, and right now in the project the highest used ID number is 42 (because you fully deleted 43). So if you drag that folder into the project and reopen it, then create a new file in the binder, it would become “43.rtf” and its Snapshots list in the inspector will immediately take on the contents of that old “43.snapshots” folder.
That wouldn’t always happen if you fully delete items. Scrivener doesn’t go back and fill in missing ID numbers from the past. I mean to say if the highest ID number in the project is 182, then it’s not going to go back and use “43” for your new document, it will use 183, and “43.snapshots” will go on being dud data that is connected with nothing.
Thank you for all your help.