Hotfix Instructions - Kentico 10 Source Code

Hotfixes allow you to fix problems in your installation of Kentico. You can view the list of fixed bugs on the Kentico DevNet portal.

To obtain source code hotfixes, please use the Kentico Client Portal.

The following instructions apply only to the source code version of Kentico. For standard installations, please see Hotfix Instructions - Kentico 10.


Hotfixes are not tested for all possible scenarios, so you may experience issues after applying the hotfix.

Always backup your project files and database before applying a hotfix.

Table of Contents

Installing the hotfix

  1. Run the Hotfix_<version>_src.exe file.
  2. Go through the hotfix installation procedure.

By default, the installer places the hotfix into the C:\Program Files\Kentico\<version>\Hotfix<version> folder.

Applying the hotfix to a local project

  1. If your system stores virtual objects on the file system (due to enabled Deployment mode or source control options), return the files to the database. After you apply the hotfix, re-enable deployment mode or source control and rebuild the solution.

  2. Run Kentico Hotfix Utility (Hotfix.exe) from the location where you installed the hotfix (C:\Program Files\Kentico\<version>\Hotfix<version> folder by default).

  3. Select your project folder using the Browse button or type in the path to the project manually.

  4. Use the application to back up your project files and/or database if you have not already done so.

  5. Select which components you want to update. Click Switch to advanced mode if you wish to change the settings. We recommend updating all components.

    • Source files – all files in the source code, except for the web project in the CMS folder
    • Setup files – the Kentico installer and external utilities (which are separate from the web project)
    • SQL script – the database structure and data
    • Kentico files – the web project files in the CMS folder
  6. Choose a method of taking the project offline and back online.

  7. Click Next to start the update procedure.

  8. After the update finishes, click Next to view any problems that may have occurred and the instructions to solve them.

  9. Open the project solution in Visual Studio and follow the compilation instructions.

  10. Rebuild the solution.

For more information, see Kentico Hotfix and Upgrade Utility.

Applying the hotfix to a remote project

If you cannot access your web project directly (for example when the project is located on a remote hosting server), you can use the Hotfix Utility to create the updated file structure and then upload them to your web project location.

  1. Navigate to the location where you installed the hotfix (C:\Program Files\Kentico\<version>\Hotfix<version> folder by default).

  2. Run Hotfix.exe from the command line with the /deploy=net45app parameter.
    Example: Hotfix.exe /deploy=net45app
    This launches the Hotfix Utility, which then creates the files and folders necessary for updating the source code project and saves them into the folder chosen in the first step of the Hotfix Utility wizard.

    Additionally, you can provide the /path parameter to specify the location where the application creates the updated files. This way you do not need to set the path in the first step of the Hotfix Wizard. You can supply the /path parameter in two different formats – relative, which represents a folder in the location from which the utility was executed; or absolute, which can be any path to a local disk.

    Example: Hotfix.exe /deploy=net45app /path=Deploy
    This launches the Hotfix Utility, which then creates a folder named Deploy in the directory from which the utility was executed and copies all files and folders necessary for updating a source code project into that folder.

  3. Once you have the update files ready, take your website offline. You can do this by copying the App_Offline.htm file from the hotfix installation directory into the root of the remote web project.

  4. Upload the update files created by the Hotfix Utility into your remote web project (overwrite the original files).


    If you have previously modified some of the Kentico project files, DO NOT OVERWRITE these files. You could lose your modifications.

    You need to compare the modified files with the new versions and make appropriate changes manually.

  5. Manually execute the hotfix SQL scripts on your Kentico database. The script files are located in the SQL folder of your hotfix installation directory.

    • If you do not use separated databases – run Hotfix_separated.sql first and then Hotfix_default.sql.
    • If you use separated databases – run Hotfix_separated.sql on the separated database and Hotfix_default.sql on your main database.
    • Note: The script files may be empty if the given hotfix does not require any SQL scripts for the related tables (skip the file in these cases).
  6. Open the project in Visual Studio, follow the compilation instructions, and rebuild the solution.

  7. Bring your website back online (delete the App_Offline.htm file).

After applying the hotfix

All users who work with the Kentico administration interface should clear the cache in their browsers after applying the hotfix. Otherwise, some features in the administration interface may not be displayed correctly.

Updating setup files and external utilities

Hotfixes provide bug fixes for all files related to the Kentico installation, which includes the installer and other external utilities, such as Kentico Installation Manager and Kentico Service Manager.

To update these files and utilities, you need to apply the hotfix to the setup files:

  1. When running the hotfix utility, click Switch to advanced mode in the Change confirmation step.
  2. Select the Setup files checkbox.
  3. Click Next.
  4. In the Running applications step, stop any applications that are currently running from the setup files.
  5. Click Next and continue through the rest of the hotfix procedure.

The hotfix makes any required changes to the files in the directory where you installed your Kentico setup files.

Source code compilation instructions

After applying the hotfix, please perform the following steps in Visual Studio to ensure that the source code works correctly and can be compiled:


  • Add a reference to the Routing.Web library in the following projects:
    • DocumentEngine.Web.UI
    • MediaLibrary.Web.UI

Additional notes and workarounds


  • After applying the hotfix, you can configure the character encoding that the continuous integration solution uses when generating non-binary files in the CIRepository folder. Add the CMSCIEncoding key to the appSettings section of your project’s web.config file. Changing the value of the key does not update the encoding type of existing files in the CIRepository folder. To fully update the repository content, you need to run complete serialization for all objects and manually update the encoding type of your repository.config file.

      <add key="CMSCIEncoding" value="utf-8" />
  • When processing serialized XML data with custom fields of the Decimal number data type (for example during import, staging, or in the REST service), the system handled certain types of decimal values incorrectly if the culture context of the source data was different than on the target instance. After applying the hotfix, the system attempts to adapt the processing for all types of decimal culture formats. In certain cases this may result in an error, and you then need to fix the source data or as a temporary workaround add the <add key=“CMSDisableDecimalSeparatorFix” value=“true” /> key to the appSettings section your project’s web.config file, which returns the system to the pre-hotfix decimal processing behavior.

    REST service errors

    If you encounter errors when processing REST service requests with data containing decimal numbers, use the CMSRESTCulture web.config key to set the culture context of the REST service to match the culture format used by the sending application.

      <add key="CMSRESTCulture" value="en-US" />

    We strongly recommend sending data in the en-US culture format.


  • Heavy load on sites hosted on Microsoft Azure and utilizing the 51Degrees Premium integration caused site downtime in certain cases. After applying the hotfix, the Devices selector on the General tab of device profiles in the Device profiles application now only lists devices specified in ~/App_Data/CMSModules/DeviceProfile/devices.xml. Instead of selecting individual devices via the Devices selector, we recommend using macro expressions to create your desired device profile. For example, a device profile with the following macro expression applies only to mobile phones with screens no wider than 480px:

    Example - Device profile macro expression
      maxWidth = 480;
      width = CurrentDevice.ScreenPixelsWidth;
      if (!CurrentDevice.IsMobile || (width > maxSideSize))
          return false;
      return true;


  • When using macro expressions within marketing automation action steps placed after a Wait step in the process, the CurrentSite value is not available in the macro context. The hotfix adds a new ActivitySiteID macro property, which you can use for automation processes with a trigger of the Contact performed an activity type (for example Abandoned shopping cart processes). The ActivitySiteID macro property resolves into the identifier of the site where the trigger activity occurred. To see an example, refer to Walkthrough - Sending an automated reminder of an abandoned shopping cart.


  • Due to an update of the Bing Maps API, the original Bing Maps web parts no longer work after June 30, 2017. Applying the hotfix updates the web parts to use the new Bing Maps V8 API. If you use Bing Maps web parts on your website, you may need to perform additional manual steps:

    • The Enable keyboard shortcuts property of the web parts no longer works. We recommend removing this property from the web part definition (open the Web parts application and edit the web parts on the Properties tab).

    • If you are using a Transformation to display the infobox for location markers (pushpins), you need to revise this transformation due to a possible design break. The outer element of the transformation needs to declare its dimensions as absolute values. If the dimensions of your infobox are larger than 256x126, you need to:

      1. Edit the ~/CMSWebParts/Maps/*/BingMaps_files/BingMaps.js file in your web project (for the corresponding web parts that you use).

      2. Locate the showInfo function and set the maxWidth and maxHeight of the infoboxOptions object to define custom maximum dimensions.

         var infoboxOptions = {
             title: pushpin.title,
             description: pushpin.description,
             maxWidth: 300,
             maxHeight: 150
    • If you are using custom icons for location markers (pushpins) defined via the Icon field property of the web parts, you need to:

      1. Edit the ~/CMSWebParts/Maps/*/BingMaps_files/BingMaps.js file in your web project (for the corresponding web parts that you use).

      2. Locate the addBingMarker function and set the anchor property of the pushpinOptions object. The value represents X and Y coordinates, which specify what part of the image is anchored to the location of the pushpin, (0, 0) being the top-left corner.

         if (iconURL) {
             var pushpinOptions = {
                 icon: iconURL,
                 textOffset: offset,
                 anchor: new Microsoft.Maps.Point(12, 17)

For more information, refer to the Bing Maps V7 to V8 Migration Guide on Microsoft TechNet.


  • The SharePoint data source web part did not correctly handle multiselect fields (fields whose values are sent as arrays of strings). The hotfix ensures that the data source processes such fields into strings consisting of the array’s items separated by newline characters (environment specific). To display data from multiselect SharePoint fields, you need to manually parse the values within the transformations applied to the data source’s output. For example:

      <%# String.Join(" and ", Eval<string>("MultiselectField").Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)) %>


  • When using Text / XML transformations, it was not possible to access the values of data fields whose name contained characters conflicting with the Kentico macro syntax (for example hyphens in element names when using an XML data source). After applying the hotfix, such fields can be accessed in transformations using the new DataItem macro object and indexing, for example: {% DataItem[“field-name”] %}


  • When using Amazon S3 storage, the system always used a preset HTTP endpoint for the REST API request that determined the region of buckets. This could cause problems in environments where non-HTTPS requests are restricted. After applying the hotfix, you can configure the Amazon S3 REST API endpoint to use HTTPS by adding the following key to the appSettings section of the web.config file:

      <add key="CMSAmazonRestApiEndPoint" value="" />


  • The system did not trigger any global events when creating objects by directly inserting data into a database table (for example when a user imported contacts from a CSV file). If you need to perform custom actions before or after such object creation actions, apply the hotfix and then assign a handler to the new SqlEvents.BulkInsert event.
  • When using multiple Kentico applications with a shared file system and enabled web analytics, file lock errors could occur when processing the analytics log files. If you have such an environment, you need to manually ensure that the file system is configured as shared after applying the hotfix. For detailed instructions, see the example on the Running multiple sites on a single domain page.


  • The serialized data created by the continuous integration solution for certain types of bindings (M:N relationships between objects) had an inconsistent order. The different data order caused unnecessary changes in the continuous integration repository files (even when the binding data remained the same). To fix the problem, you need to apply the hotfix and then serialize all objects:
    1. Disable running of scheduled tasks (using the Settings -> System -> Scheduled tasks enabled setting).

    2. Open the Continuous integration application in the Kentico administration interface.

    3. Click Serialize all objects.

    4. Wait until the serialization process finishes and then re-enable scheduled tasks.

      Note: The update may cause a large number of changes in existing continuous integration data for bindings.

Fixed bugs

For a full list of bugs covered by the hotfix, open the Hotfixes page on DevNet and click Fixed bugs for the appropriate Kentico version.