{"version":"2.1.234","anchor":"rename-retry-no-longer-treats-an-existing-destination-as-fat","canonical_anchor":"rename-retry-no-longer-treats-an-existing-destination-as-fat","heading":"Rename retry no longer treats an existing destination as fatal","tier":"internal","area":"Elsewhere","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234\/e\/rename-retry-no-longer-treats-an-existing-destination-as-fat","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234","markdown":"### Rename retry no longer treats an existing destination as fatal\n\nRename retries treat an existing destination as fatal only if it is unwritable, but the path is unreachable.\n\n**What**\n\nThe file-rename helpers used to stop retrying whenever the destination file already existed; they now stop only when it exists and is not writable by its owner. The retry loop that decides whether to reach this check always answers no, so nothing changes in practice.\n\n**Details**\n\n- Applies to both the async and synchronous rename paths; the synchronous loop previously lacked the check entirely.\n- The existence test switched to one that does not follow symlinks and tests the owner-write permission bit.\n\n**Evidence**\n\n`renameSync`\n\n- Area: Elsewhere\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 1\/5\n- Present in the build but not switched on"}