---
title: Troubleshooting staging
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

This page describes how to resolve the most common errors that you may encounter when using [staging](https://docs.kentico.com/13/deploying-websites/content-staging.md).

## Failed staging task synchronization

Problems typically occur when the [synchronization](https://docs.kentico.com/13/deploying-websites/content-staging/synchronizing-content.md) of staging tasks fails. To check your system for failed staging tasks and identify the type of error:

1. Open the **Staging** application on the source server.
2. Look for staging tasks that have the **Failed** status in the **Result** column.
3. Click **Failed**  to view the error message details in the _Synchronization log_ dialog.

### HTTP status 404: Not Found error

Error: _**"Synchronization client error: Exception occurred: The request failed with HTTP status 404: Not Found."**_

Not found errors occur in the following cases:

- If the staging service URL is set incorrectly for a target server.
- When attempting to stage page attachments or media library files that are too large.

#### Solution

1. Open the **Staging** application on the source server where the problem occurs.
2. On the **Servers** tab, edit all registered target servers.
3. Check that the **Server service URL** of each server is correct, including the domain and virtual directory (if necessary).
4. If you are using staging to transfer very large files, see [Staging large files](https://docs.kentico.com/13/deploying-websites/content-staging/staging-large-files.md).

### Parent node does not exist

Error: _**"SyncServer.ServerError: Exception occurred: \[SyncManager.UpdateDocument]: Parent node does not exist, please synchronize parent node first."**_

Occurs when attempting to synchronize a page whose parent or other ancestor page does not exist on the target server. Can also occur if the parent or ancestor page was created manually on the target server outside of the staging process (i.e. when the GUIDs of the pages do not match on both servers).

#### Solution

Synchronize all ancestor pages of the required page first. If your servers have inconsistent page GUIDs, you may need to delete the ancestor pages on the target server and synchronize the entire section from the source. You can use the **Synchronize current subtree** action on the **Pages** tab of the **Staging** application (see [Synchronizing content](https://docs.kentico.com/13/deploying-websites/content-staging/synchronizing-content.md)).

If possible, always avoid manual creating of pages on the target server for sections where you plan to deploy pages via staging. The correct approach is to transfer all pages via the staging service.

### Incorrect staging service password

> **Warning:** For instances hotfixed to version 13.0.180 or newer this issue only occurs with the legacy Content staging flow re-enabled. See [Hotfix instructions – 13.0.180](https://docs.kentico.com/13/installation/hotfix-instructions-xperience-13.md#hflegacystaging).

Errors:

_**"Synchronization client error: Exception occurred: Microsoft.Web.Services3.Security.SecurityFault: The security token could not be authenticated or authorized. ... The computed password digest doesn't match that of the incoming username token."**_\
Occurs when the server password on the source instance does not match the password configured for the staging service settings on the target server.

_**"Synchronization client error: Exception occurred: System.Web.Services.Protocols.SoapException: Server was unable to process request. —> System.Exception: Missing X509 certificate token, please check authentication type."**_\
Occurs if the server on the source instance is configured for user name and password authentication, but the target server uses X.509 authentication.

_**"Synchronization client error: Exception occurred: \[X509ClientOutputFilter.SecureMessage]: Unable to obtain server security token ID."**_\
Occurs if the server on the source instance is configured for X.509 authentication and the target server does not have valid X.509 configuration.

#### Solution

1. On the source instance, open the **Staging** application and edit your target server on the **Servers** tab.

   ![Server settings on the source instance](https://docs.kentico.com/docsassets/13/troubleshooting-staging/Staging_Auth_Source.png "Server settings on the source instance")
2. On the target instance, open the **Settings** application and select the **Versioning & Synchronization -> Staging** category.

   ![Staging service settings on the target instance](https://docs.kentico.com/docsassets/13/troubleshooting-staging/Staging_Auth_Target.png "Staging service settings on the target instance")
3. Verify that the target server on the source instance and the Staging service settings on the target instance have matching authentication settings, including:

   - The authentication type (User name / password or X.509)
   - The **User name** and **Password** (for User name / password authentication)
   - The **Client key ID** and **Server key ID** (for X.509 authentication)

### Invalid service URI

Error:  _**"Synchronization client error: Exception occurred: Invalid URI: The format of the URI could not be determined."**_

URI format errors occur if the protocol (for example _http://_) is missing in the staging service URL of your target server.

#### Solution

1. Open the **Staging** application on the source server where the problem occurs.
2. On the **Servers** tab, edit all registered target servers.
3. Make sure the **Server service URL** of each server includes the correct protocol. For example: _http://www.targetserver.com_

### SOAP header security not understood

> **Warning:** For instances hotfixed to version 13.0.180 or newer this issue only occurs with the legacy Content staging flow re-enabled. See [Hotfix instructions – 13.0.180](https://docs.kentico.com/13/installation/hotfix-instructions-xperience-13.md#hflegacystaging).

Error: _**"Synchronization client error: Exception occurred: System.Web.Services.Protocols.SoapHeaderException: SOAP header Security was not understood."**_

Can occur in certain environments. This is a general error related to .NET and WSE.

#### Solution

Add the following to the _****_ section in the **web.config** file on the target server:

```xml

<webServices>
    <soapExtensionTypes>
        <add type="CMS.Synchronization.WSE3.AuthenticationCheckerExtension, CMS.Synchronization.WSE3" priority="1" group="High" />
    </soapExtensionTypes>
    <soapExtensionImporterTypes>
        <add type="Microsoft.Web.Services3.Description.WseExtensionImporter, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </soapExtensionImporterTypes>
    <soapServerProtocolFactory type="Microsoft.Web.Services3.WseProtocolFactory, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    <protocols>
        <add name="HttpSoap"/>
        <remove name="HttpPost" />
        <remove name="HttpGet" />
    </protocols>
</webServices>

```

### Staging security validation

> **Warning:** For instances hotfixed to version 13.0.180 or newer this issue only occurs with the legacy Content staging flow re-enabled. See [Hotfix instructions – 13.0.180](https://docs.kentico.com/13/installation/hotfix-instructions-xperience-13.md#hflegacystaging).

Warning: _**"Staging security was validated later than expected. This might result in reduced security."**_

This warning ocurrs if the _target_ instance is missing Kentico-specific SOAP extension registration in its _web.config_ file. Typically, this problem ocurrs after installing [hotfix 13.0.178](https://devnet.kentico.com/download/hotfixes) on instances with preexisting customizations to staging (for example according to [SOAP header security not understood](#soap-header-security-not-understood)).

If staging was not customized on your instance, see [Solution - staging not customized](#solution---staging-not-customized).

#### Solution - customized staging

Add the following section to the corresponding `webServices` section containing your customizations.

```xml title="web.config"
<webServices>
    <!-- Add this node if missing -->
    <soapExtensionTypes>
        <add type="CMS.Synchronization.WSE3.AuthenticationCheckerExtension, CMS.Synchronization.WSE3" 
             priority="1" 
             group="High" />
    </soapExtensionTypes>
<!-- ... -->
</webServices>
```

For example, if you use the customization described under [SOAP header security not understood](#soap-header-security-not-understood), the full `webServices` element should now look like the following:

```xml title="web.config"
<webServices>
    <soapExtensionTypes>
        <add type="CMS.Synchronization.WSE3.AuthenticationCheckerExtension, CMS.Synchronization.WSE3" priority="1" group="High" />
    </soapExtensionTypes>
    <soapExtensionImporterTypes>
        <add type="Microsoft.Web.Services3.Description.WseExtensionImporter, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </soapExtensionImporterTypes>
    <soapServerProtocolFactory type="Microsoft.Web.Services3.WseProtocolFactory, Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    <protocols>
        <add name="HttpSoap"/>
        <remove name="HttpPost" />
        <remove name="HttpGet" />
    </protocols>
</webServices>
```

#### Solution - staging not customized

If staging was not customized on your instance, ensure that the configuration file located at **\~/CMS/CMSPages/Web.config** contains the following `soapExtensionTypes` section under `<location path="Staging/SyncServer.asmx">`:

```xml title="~/CMS/CMSPages/Web.config"
<location path="Staging/SyncServer.asmx">
    <webServices>
        <soapExtensionTypes>
            <add type="CMS.Synchronization.WSE3.AuthenticationCheckerExtension, CMS.Synchronization.WSE3" 
                    priority="1" 
                    group="High" />
        </soapExtensionTypes>
    <!-- ... -->
    </webServices>
</location>
```

### Timeout expired

Error: _**"The timeout period elapsed prior to completion of the operation or the server is not responding."**_

Timeouts may occur when synchronizing a very large number of staging tasks within a single operation. The default timeout interval is 180 seconds.

#### Solution

Either synchronize the tasks in smaller batches or increase the timeout interval. To increase the interval, add the **CMSStagingServiceTimeout** key to the _configuration/appSettings_ section of the _**web.config file on the source server**_ and set the value:

```html

<add key="CMSStagingServiceTimeout" value="300" />

```

### HTTP status 413: Request Entity Too Large

Error:  _**"Synchronization client error: Exception occurred: The request failed with HTTP status 413: Request Entity Too Large."**_

Can occur when synchronizing pages over HTTPS.

#### Solution

[Increase the uploadReadAheadSize attribute to raise the maximum number of bytes a Web server will read into a buffer and pass to an ISAPI extension](https://www.iis.net/configreference/system.webserver/serverruntime)

Note that it is not recommended to set the value to the maximum (2147483647) due to security reasons. Instead, determine the smallest value that the server should be allowed to read into a buffer and use that instead. The default value is 49152 bytes.

For example, the following appcmd.exe command changes the _uploadReadAheadSize_ value to 245760 bytes.

```powershell

appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /uploadReadAheadSize:"2147483647" /commit:apphost

```

## Incorrect relationships between objects after staging

> **Info:** **Problem**: Bindings (relationships) between objects disappear after synchronizing changes from a different staging instance.
>
> Such problems can occur because staging includes all child objects and bindings when synchronizing most objects.
>
> For example: A [role](https://docs.kentico.com/13/managing-users/role-management.md) is not assigned to any users in the development environment, but to 100 users on the target production server. If you synchronize the role object through staging, the users are removed from the role on the target server.
>
> **Solution**: Ensure that all staging servers have mirrored and consistent content and objects, or [customize staging of child and binding objects](https://docs.kentico.com/13/custom-development/handling-global-events/customizing-staging-of-child-and-binding-objects.md) to match your requirements.

> **Info:** **Problem**: Custom fields that store ID values (for example object selectors) point to different objects or are empty after staging.
>
> Content staging cannot ensure that objects and pages have the same ID values after being transferred to a different environment. However, the synchronization process preserves [GUID](http://en.wikipedia.org/wiki/GUID) values.
>
> **Solution**: Use fields with the _Unique identifier (GUID)_ data type if you need to safely identify pages or objects across multiple staging environments.

> **Info:** **Problem**: Objects are assigned to the wrong site after synchronization on instances with multiple sites.
>
> **Solution**: Make sure that the service URLs set for target servers on your source instance contain the domain names of the correct sites. Each site's servers must use the administration domain name of the matching site on the target instance.

## Synchronization fails when using SSL

You may encounter problems when synchronizing staging tasks over a secured protocol (SSL). By default, the staging service only accepts certificates issued by a trusted certification authority.

To configure the system to accept all certificates, including self-signed, add the **CMSStagingAcceptAllCertificates** key to the _configuration/appSettings_ section of your web.config file:

```html

<add key="CMSStagingAcceptAllCertificates" value="true" />

```
