Repository navigation
sync: a save folder that cannot be written is said once, and waited on - #114
ChakraFusion wants to merge 1 commit into
Conversation
A save folder this device may not write to (one under Program Files, for a program not run as administrator) failed every pull into it with the same raw "access denied", from every peer, on every pass. It is now said once, with what to do, and pulls into it wait 30 minutes before trying again (in memory, so a restart tries at once). The peer result is "unwritable", which, like a conflict, does not advance the last-synced stamp. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@ChakraFusion is attempting to deploy a commit to the sivadaboi's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Thanks, saying this once with what to do is much better than the raw error on every pass. One concern: on Windows, renaming over a file that a running game holds open also fails with "Access is denied" (it surfaces as |
A save folder this device may not write to (one under Program Files, for a program not run as administrator) fails every pull into it with "access denied". Every pass from every peer tried again, and each logged the same raw error ("sync … failed: patch save.dat: create temp file: … Access is denied"), saying nothing about what to do.
The change (
syncengine/unwritable.go):unwritable, which, like a conflict, does not advance the last-synced stamp.Test:
TestUnwritable_SaidOnceAndNotRetriedEveryPass. On Windows it denies writes on its own temp folder withicacls, which is how a folder under Program Files behaves; elsewhere it useschmod. Over three passes, the message appears once. Once the wait is over and the rights are back, the next pass takes the peer's save. Ondev-publicthe same setup logged the raw error on every pass.Checks: the full unit and e2e suites pass locally on today's
dev-public.🤖 Generated with Claude Code