If you’re using a Chromium-based browser such as Microsoft Edge or Google Chrome, you’ve probably seen SharePoint, OneDrive, and other Microsoft 365 services asking permission to open certain links in their associated apps — for example, the OneDrive Sync client.

A protocol handler is a rule that tells the system or browser which app should open when a specific link type (protocol) is clicked. For example, mailto opens your mail app, msteams launches Microsoft Teams, and odopen opens the OneDrive Sync client.

Recently, I needed to reset this choice for OneDrive. A quick search online (and a few AI-generated answers) suggested checking the protocol handler settings in Edge or Chrome. That used to work in the past, but not anymore. It seems Microsoft has removed the setting in Edge, and the version in Chrome is now limited.
- In Microsoft Edge for Business (version 141), I found no protocol handler setting, neither in Settings nor under site permissions.
- In Google Chrome (version 141), the setting still exists but doesn’t list any sites or protocols. It’s also not available as a site permission.

So how do you reset a protocol handler now?
These settings are stored locally in a file called Preferences within your browser profile. You can edit this file manually or script it.
The file paths on Windows are as follows:
- Microsoft Edge
%AppData%\Local\Microsoft\Edge\User Data\Default\Preferences
or
%AppData%\Local\Microsoft\Edge\User Data\<Profile>\Preferences - Google Chrome
%AppData%\Local\Google\Chrome\User Data\Default\Preferences
or
%AppData%\Local\Google\Chrome\User Data\<Profile>\Preferences
If you’re using multiple browser profiles (like I do), you’ll need to identify which one belongs to your account. You can do this easily with PowerShell, since the Preferences file contains the account information. But it’s difficult to read in a text editor. Just change the profile number until you find the one with your email address. I found profile 3 for my case.
# With PowerShell 7
$EdgeProfilePath = "$Env:LOCALAPPDATA\Microsoft\Edge\User Data\Profile 3\Preferences"
$EdgeProfile = Get-Content -Path $EdgeProfilePath -Raw | ConvertFrom-Json -AsHashtable
$EdgeProfile.account_info.email # Checking if this is your correct browser profile
Once you’ve found the profile, all protocol handler settings are stored under the protocol_handler node in the Preferences file. For OneDrive, the relevant entry is odopen.

You can delete the corresponding node to reset a specific URL or protocol.
Make sure the browser profile is closed before editing the Preferences file; otherwise, Edge will overwrite your changes.
$ProtocolHandlerUrl = "<YourProtocolHandlerUrlToRemove>"
$EdgeProfile.protocol_handler.allowed_origin_protocol_pairs.Remove($ProtocolHandlerUrl)
# Save the updated Preferences file to reset the protocol handler
$EdgeProfile | ConvertTo-Json -Depth 20 | Set-Content -Path $EdgeProfilePath -Encoding UTF8
Now reopen your Edge profile and try syncing OneDrive again. You’ll see the protocol handler prompt once more, which means you successfully reset the OneDrive protocol handler configuration.
