i’ve been running a tiddlyhost wiki and accessing it from different computers with no problem. but recently (within the past few months?), trying to save from one specific computer gives me this error preventing the save:
reloading, emptying browser cache, restarting browser/computer does not help. i can save fine using edge (browser), from another computer (firefox, windows 10), or my phone (firefox, android) with no problem.
This looks like the simple protection mechanisium is working (you have made changes elsewhere) but of course could be a bug and a false flag. There is a posibility that some kind of file has being left behind on tiddlyhost and not deleted. If you get no where perhaps contact @simon
When you load your TiddlyWiki, there’s a response header called “Etag”. The value of that is remembered by TiddlyWiki and when you save, the value is placed in a request header called “If-Match”. If the server thinks the current etag doesn’t match the value it sees in the “If-Match” header they it will refuse to save and produce the error message you’re seeing.
The challenge is to figure out why Tiddlyhost is deciding the values don’t match. If TiddlyWiki is providing the correct value in the If-Match header, then it could be a Tiddlyhost bug. It could also be that your browser for some reason is using an older etag value.
thank you for your responses! as it turns out i had made some minor change on another computer, so it was working as intended. however, as the warning doesn’t pop up unless you try to save, i had done a fairly substantial amount of work that now wouldn’t save.
it would be nice if there was a way (a button on the tiddlyhost settings page?) to force ignore this mechanism and save anyways. in this case, i was able to export the edited tiddlers and re-import them after saving on the windows 10 computer and reloading.
thanks for the tip! i used commander, in this case i was modifying a certain type (tag) of tiddler so i could just export by tag. but a filter like [all[tiddlers+shadows]!sort[modified]limit[##]] would work great for the general case
I wish I was ever just modifying a certain tag. Every time I go to fiddle with content, I also find some way to improve my procedures, functions, templates, and css. No save with more than about two tiddlers is ever clean content.
Does the server retain the “current etag” from the time the file was loaded? Or is it generated during the save? If the etag is on the server, where and how is it saved?
Each TiddlyWiki file on Tiddlyhost is represented by an ActiveStorage::Blob record, which represents the actual blob in the storage back end, say Amazon S3. The value used for the etag is literally the checksum of that blob, which Rails stores as a field in the ActiveStorage::Blob record.
So if the etag TiddlyWiki provides when saving doesn’t match, Tiddlyhost assumes the file the browser loaded originally is not the same as the current file on the server. The server can’t say much about why it’s different, it just knows that it’s different and assumes it must be because another save happened.
In theory, if the browser reloads the latest file and etag from the server, it should always match on save. In theory at least…