https://login.veeam.com/en/oauth?client_id=nXojRrypJ8&redirect_uri=https%3A%2F%2Fwww.veeam.com%2Fservices%2Fauthentication%2Fredirect_url&response_type=code&scope=profile&state=eyJmaW5hbFJlZGlyZWN0TG9jYXRpb24iOiJodHRwczovL3d3dy52ZWVhbS5jb20va2IzMDc3IiwiaGFzaCI6IjM0YThiYjBmLWEwOGYtNDU4MS1iNjUxLTcyN2Y2NmM5ZmE1MiJ9
1-800-691-1991 | 9am - 8pm ET
EN

Veeam Agent backup job fails with "Failed to call RPC function 'TestCompatible': Error code: 0x80070008. Cannot initialize COM runtime" error

Challenge

A Veeam Agent backup job managed by the backup server fails with the following error:

Processing Error: Failed to call RPC function 'TestCompatible': Error code: 0x80070008. Cannot initialize COM runtime.

User-added image

Cause

When a backup job starts, Veeam Backup & Replication connects to the Veeam Agent machine to initiate the backup process. The connection is based on Windows API and uses RPC and WMI queries. If Microsoft Windows is low on desktop heap memory for services running under LocalSystem account, Microsoft Windows can reject the incoming queries. As a result, the following message is displayed in System Event Log of the Veeam Agent machine:
 
Log Name:      System
Source:        Win32k
Event ID:      243
Task Category: None
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:     
Description:
A desktop heap allocation failed.
DCOM errors (Event ID 10010) can be found in System Event Log of the Veeam Agent machine too.
 

Solution

To resolve this issue, update the registry key to increase the desktop heap memory size. Mind that this change affects the desktop heap of all services, so do not make the value larger than necessary. To update the registry key, do as follows:

  1. Run regedit.exe.
  2. Locate the HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems key.
  3. Locate the Windows string.

  1. Edit the third "SharedSection" value in the Value data field as shown below:

       Before:

        After:

  1. Click OK.
  2. Reboot the Veeam Agent machine.

More information

To learn more about desktop heap memory, see:

You can check the desktop heap memory usage on your own in the following way:

  1. Download Windows Software Development Kit (SDK).
  2. Run Sdksetup.exe and install Debugging Tools for Windows.
  3. Download LiveKd.
  4. Copy livekd.exe to C:\Program Files (x86)\Windows Kits\10\Debuggers\x64.
  5. Run Command Prompt.
  6. Type the following commands:
livekd -y srv*http://msdl.microsoft.com/download/symbols
!dskheap

Command Prompt returns the list of sessions. If the desktop heap is running out of memory, the Used Rate(%) value for the session is close to 100%.

0: kd> !dskheap
  Winstation\Desktop            Heap Size(KB)   Used Rate(%)
------------------------------------------------------------
  WinSta0\Default                  20480                 0%
  WinSta0\Disconnect                  96                 4%
  WinSta0\Winlogon                   192                 2%
  Service-0x0-3e7$\Default           768                 4%
  Service-0x0-3e4$\Default           768                 1%
  Service-0x0-3e5$\Default           768                 0%
  Service-0x0-17eac$\Default         768                 2%
  Service-0x0-afb53$\Default         768                 0%
  1. Take the last part of the session name and convert the HEX value into Decimal:
    1. Open PowerShell.
    2. Paste the last part of the session name (after the last dash).
    3. Add 0x before the last part of the session name.

  1. Return to Command Prompt.
  2. Type the following WMI query to retrieve all objects related to the session and the name of the account:
Get-WmiObject -Query "ASSOCIATORS OF {Win32_logonsession.LogonId=999}"

Command Prompt returns the list of processes running under that account and the name of the account:

Caption                    Name                       SID
-------                    ----                       ---
SUP-A2025\SYSTEM           SYSTEM                     S-1-5-18
LsaIso.exe                 LsaIso.exe
lsass.exe                  lsass.exe
svchost.exe                svchost.exe
…

If one of the processes running under Local System Account consumes too much memory, we recommend to kill non-Microsoft processes one by one and re-run the !dskheap command (Step 6) to find the leaking application.

KB ID:
3077
Product:
Veeam Agent for Microsoft Windows
Published:
2019-12-26
Last Modified:
2020-08-13
Please rate how helpful this article was to you:
5 out of 5 based on 1 ratings
Thank you for helping us improve!
An error occurred during voting. Please try again later.

Couldn't find what you were looking for?

Below you can submit an idea for a new knowledge base article.
Report a typo on this page:

Please select a spelling error or a typo on this page with your mouse and press CTRL + Enter to report this mistake to us. Thank you!

Spelling error in text

Knowledge base content request
By submitting, you agree that your personal data will be managed by Veeam in accordance with the Privacy Policy.

ty icon

Thank you!

We have received your request and our team will reach out to you shortly.

OK

error icon

Oops! Something went wrong.

Please go back try again later.