# Stable Extension ID Chrome and Brave derive an extension ID from the extension public key. If the key changes, the extension ID changes too. Why this matters for rclone-jav: - `chrome.storage.sync` settings are scoped to the extension ID. - The native messaging host manifest authorizes specific extension IDs in `allowed_origins`. - Moving or reloading an unpacked extension without a fixed key can make settings appear to vanish and can break native messaging. ## Recommended workflow 1. Export settings from Options -> Backup before changing install paths. 2. Keep Production loaded from a stable folder path. 3. For a permanently stable unpacked ID, add a fixed Chrome extension public key to `manifest.json` under the `key` field. 4. After the ID changes intentionally, update the native host manifest `allowed_origins` and re-register the host. 5. Import the settings backup. ## Packed extension workflow If you pack the extension as a `.crx`, save the generated `.pem` private key. Packing future versions with the same `.pem` produces the same extension ID. Do not lose or share the `.pem`; it controls the extension identity. ## Unpacked extension workflow For unpacked installs, use the public key derived from the `.pem` as `manifest.json`'s `key` value. The value must be the Chrome extension public key format, not an arbitrary string. Same manifest key = same extension ID.