Common error conditions and solutions

This topic includes the most common error messages that you might encounter when using the Rights Management Services SDK 2.1 developer tools. It also provides a recommended action to fix the error, where applicable.

Important  For error condition processing, always use a call to IpcGetErrorMessageText right after an SDK API call fails, so you get complete information about the nature of the error.

Common error conditions and solutions

Constant/descriptionAction required to fix the error


A debugger was detected by RMS SDK 2.1

The developer version of RMS SDK 2.1 does not check for the presence of a debugger. If possible, debug your application by using this version of RMS SDK 2.1

If you must debug the production version of RMS SDK 2.1, use the following guidance.

Some RMS SDK 2.1 functions are designed to fail under a debugger:

To debug code following these function calls, you must break into the process and attach a debugger after the function calls have completed. One way to do this is to use an assert statement to break into the debugger. The _ASSERTE macro is included in the Crtdbg.h header.

For more information about _ASSERTE, see ._ASSERT, _ASSERTE Macros


Certificate chain does not match.

Make sure the hierarchy key, HKEY_LOCAL_MACHINE\Software\Microsoft\MSIPC\Hierarchy

            Data type
, contains the correct value based on the key you used to sign your AD RMS application manifest.

Here are the signing keys and their associated values (hierarchy DWORD):

  • ISV—1
  • Production—0 or not present


You are using an application signed with the ISV signing key, but it is trying to communicate with a production AD RMS server, or vice versa.

If you are using the developer version of AD RMS server, ensure that you are using the ISV signing key to sign your application.

If you are using the production version of AD RMS server, ensure that you are using the production signing key to sign your application.


The application manifest is not valid.

This can be caused when the binary (application) was rebuilt, and the manifest was not regenerated.

Make sure you regenerate your application manifest every time you rebuild your application.



Related topics

Developer notes