When attempting a backup via the Backup Wizard, using scheduled jobs from maintenance plans, script or command line, a similar error may occur:
XML returned from Engine was invalid / ERROR_WAIT_NO_CHILDREN
Complete error may display:
Server: Msg 50000, Level 19, State 1, Line 0
SLS Error: XML returned from Engine was invalid. : Error starting "D:\Program Files\Imceda\LiteSpeed\SQL Server\Engine\SQLLitespeedx32.exe" (ERROR_WAIT_NO_CHILDREN) process, Error: 122
Error Msg: (0)
NOTE: Native SQL Server backup jobs may fail with the same message.
There are no child processes to wait for.
WORKAROUND:
See: https://support.microsoft.com/en-us/kb/184802 for recommendations on checking Windows Server 2003, this specific event is logged in the system event log and how to resolve.
To correct this problem, increase the size of the desktop heap:
Additional Information:
Concerning error return code: ERROR_WAIT_NO_CHILDREN
Background:
LiteSpeed for SqlServer uses extended stored procedures (contained in xpSLS.dll) to call backup/restore functionality in an external executable engine (SQLLiteSpeed.exe). A typical operation would be to invoke the extended stored procedure 'xp_backup_database' which in turns runs CreateProcess to call SQLLiteSpeed.exe. An alternate path may invoke the slssqlmaint.exe executable which will in turn invoke the engine. The ERROR_WAIT_NO_CHILDREN failure means that CreateProcess attempted to start the new process but an operating-system level error occurred while initializing. This error is usually resource related, but can also be related to configuration errors such as missing system libraries.
If the problem appears after a period of time has elapsed, it would mostly be an environmental resource failure. Restarting SqlServer either does not affect the failure, or temporarily postpones it. A typical problem that can lead to this type of failure is exhaustion of the desktop heap- since all the executions failing are performed within the non-interactive desktop in which the service SqlServer is running. This can be diagnosed directly by installing dheapmon (which is fairly intrusive and not encouraged). There is an easy check that our development would like the customer to perform. Once the backups (SqlLiteSpeed executions) begin to fail with ERROR_WAIT_NO_CHILDREN, run a backup with a command-line interpreter. For example, a simple database backup would be: (fill in <> as appropriate,
SQLLiteSpeed.exe -B database -D <dbname> -F <filename.bkp> -S <servername> -T
Note that the install path defaults to: "\Program Files\Quest Software\LiteSpeed\SQL Server\Engine"
If desktop heap is the problem, we would expect running the backup interactivly to succeed while another performed at the same time via an xp call (TSql within SSMS) to fail. This is because running the engine interactively by the user will execute within the default interactive desktop- definitely not the desktop in which services are running.
If this proves to be true, there are some changes that can be made to the system. Desktop problems can relate to exhaustion of heap in a single desktop, or more uncommonly in a global heap. Running the service (SqlServer) under another account will change non-interactive desktop in which it runs. Alternately, the customer can change the amount of desktop heap allocated to non-interactive desktops. This will affect all non-interactive desktops. Under the following value:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
The string will include something like "SharedSection=1024,3072,512" , The third parameter controls the desktop heap allocated for non-interactive sessions. This can be raised.
Further troubleshooting will look for resource failures with Windows tools like perfmon.
© 2025 Quest Software Inc. ALL RIGHTS RESERVED. Terms of Use Privacy Cookie Preference Center