Fixing 10016 on Windows 10: The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID

November 26th, 2015 No comments

I’d been plagued by the DCOM failures on one of my Windows 10 machines after the early preview upgrade to 10.10586. It had gotten to the point where just about any new “App” would not run, Start Menu, Notification Center, etc.

One copy of 10016 error I was getting was:

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
to the user Clint-Home\Clint SID (S-1-5-21-1351466749-1989662200-2746894809-1001) from address LocalHost (Using LRPC) running in the application container Microsoft.Messaging_1.11.19004.0_x86__8wekyb3d8bbwe SID (S-1-15-2-421345033-1710570203-969709436-2809900243-2023987463-1056701467-1672618525). This security permission can be modified using the Component Services administrative tool.

Many other similar errors referring to different application containers were there, hundreds, perhaps thousands over the last few weeks.

The Eventual Fix

Dozens of hopeful posts out there which seemed to take care of the problem for most people would not work to fix the issue on my machine. I’ll link to some of those posts at the bottom, but in general the steps were to:

  1. Take ownership of:{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}.reg
    1. HKEY_CLASSES_ROOT\CLSID\{D63B10C5-BB46-4990-A94F-E40B9D520160} and
    2. HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}
  2. Open up dcomcnfg.exe and navigate to RuntimeBroker, click Permissions.
  3. Edit the security settings and add yourself and Administrators as have authorization.

I tried dozens of different things and none of them would take care of the problem.

Finally I decided to check the settings on one of my other machines.  Since you cannot edit the Permissions on RuntimeBroker without taking ownership, I created a checkpoint before messing with another machine.  I also exported both of the above mentioned keys.

When I went in to edit the dcomcnfg/RuntimeBroker permissions there I was presented with this dialog message:

When I first saw this I clicked Remove based on some prior post, this is where things went terribly wrong, removing those “unrecognized or application-specific callback” is what I think gets you into trouble.

At any rate, when I exported the aforementioned registry keys, one of the values was AccessPermission, AuthenticationLevel and LaunchPermission.   I had no other leads and so I copied over the .reg files to the affected machine and loaded them into my registry.   Instantly (without logout or reboot) the problem was fixed.

I’m posting my registry exports here, they may not work on your machine to fix the issue.  If you do decide to use these files, use at your own risk, I take no responsibility for their ability to fix or make your situation worse.

{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}.reg and {D63B10C5-BB46-4990-A94F-E40B9D520160}.reg

You will need to ensure you have still taken ownership of the registry keys at the top of the post or the import will fail.

Other posts that got me to this eventual fix:


Hope this helps someone!

Categories: Fixes Tags:

A few Firefox & Thunderbird Snippets

December 13th, 2014 No comments

I recently started using the keyConfig plugin, a very old plugin for XUL which basically lets you change keyboard shortcut assignments.

It also happens to let you create your own with a bit of JS. A couple of features that I wanted keybound weren’t easily available, so here are snippets for two of them:

Firefox – Lastpass – Open toolbar button search

In my case I then unbound Alt+W from the lastpass Advanced Site Search dialog and re-bound the key to my new code snippets.

Thunderbird – Forward as Attachment

A couple of simple snippets to get the job done.

Categories: Addons, Development, Mozilla Tags:

Firefox Preference Mapper & Update Functions for Firefox Addons

July 19th, 2013 No comments

A few functions I recently wrote for SnapLinksPlus which make working with preferences nice and simple.

The simplicity of the above, no type handling, just ask for the preference and you’ll get it.

The previous code segment lets you simply define a multi-level hierarchy which maps directly into the preferences. The values specified in the map are registered as the default values on creation, a sample usage:

Lastly, SnapLinksPlus had several ‘versions’ of preference locations and naming conventions, so I also created an updater which can be used to specify old and new locations as well as translations from previous to new values.

Example Usage:

Lastly, the PreferenceExtension requires a bit of code, namely the .wrap() function: