---
title: Hotfix Instructions - Kentico 10
---

> 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).

Hotfixes allow you to fix problems in your installation of Kentico. You can download hotfix packages and view the list of fixed bugs on the [Kentico DevNet portal](http://devnet.kentico.com/download/hotfixes).

> **Info:** If you have the source code version of Kentico, please see [Hotfix Instructions - Kentico 10 Source Code](https://docs.kentico.com/k10/installation/hotfix-instructions-kentico-10/hotfix-instructions-kentico-10-source-code.md).

> **Note:** **Note**
>
> Hotfixes are not tested for all possible scenarios, so you may experience issues after applying the hotfix.
>
> Always **back up your project files and database** before applying a hotfix.

## Table of Contents

## Prerequisites

You can only apply the hotfix to complete Kentico projects that use the standard folder structure (the solution file, _GlobalAssemblyInfo.cs_, the _CMS_ and _Lib_ sub-folders). If you run your website as a deployment of the CMS folder, you need to hotfix the original complete project and then create a new deployment.

## Installing the hotfix

1. Download the installer for the required hotfix version from the [Kentico DevNet portal](http://devnet.kentico.com/download/hotfixes).
2. Run the **Hotfix\_.exe** file.
3. Go through the hotfix installation procedure.

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

## Applying the hotfix to web site projects

### Local installation

1. If your system stores virtual objects on the file system (due to enabled [Deployment mode](https://docs.kentico.com/k10/deploying-websites/deployment-mode-for-virtual-objects.md) or source control options), return the files to the database. You can re-enable deployment mode or source control after you apply the hotfix.

2. Run **Kentico Hotfix Utility (Hotfix.exe)** from the location where you installed the hotfix (_C:\Program Files\Kentico\\\Hotfix_ folder by default).

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

4. Use the utility 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.

   - **Kentico files** – the files of your web project
   - **Setup files** – the Kentico installer and external utilities (which are separate from the web project)
   - **SQL script** – the database structure and data

6. Choose a method of taking the project offline and back online.

7. Click **Next** to start the hotfix procedure.

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

For more information, see [Kentico Hotfix and Upgrade Utility](https://docs.kentico.com/k10/external-utilities/kentico-hotfix-and-upgrade-utility.md).

### Remote installation

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\\\Hotfix_ folder by default).

2. Run **Hotfix.exe** from the command line with the **/deploy** parameter. Set the parameter value based on the installation type you are using:

   - **net45site** – web site project using .NET version 4.5
   - **net46site** – web site project using .NET version 4.6

   Example: _Hotfix.exe /deploy=net45site_

   This launches the Hotfix Utility, which then creates the files and folders necessary for updating a project running on .NET version 4.5 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=net45site /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 project running on .NET version 4.5 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's **CMS** folder (overwrite the original files).

   > **Note:** **Important**
   >
   > If you have previously modified some of the Kentico project files (such as web parts or administration interface 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](https://docs.kentico.com/k10/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/separating-the-contact-management-database.md) – 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. Bring your website back online (delete the **App\_Offline.htm** file).

## Applying the hotfix to web application projects

### Local installation

1. If your system stores virtual objects on the file system (due to enabled [Deployment mode](https://docs.kentico.com/k10/deploying-websites/deployment-mode-for-virtual-objects.md) 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 project.
2. Run **Kentico Hotfix Utility (Hotfix.exe)** from the location where you installed the hotfix (_C:\Program Files\Kentico\\\Hotfix_ folder by default).
3. Select your project folder using the **Browse** button or type in the path to the project manually.
4. Use the utility 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.

   - **Kentico files** – the files of your web project
   - **Setup files** – the Kentico installer and external utilities (which are separate from the web project)
   - **SQL script** – the database structure and data
6. Choose a method of taking the project offline and back online.
7. Click **Next** to start the hotfix 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 build the solution.

For more information, see [Kentico Hotfix and Upgrade Utility](https://docs.kentico.com/k10/external-utilities/kentico-hotfix-and-upgrade-utility.md).

### Remote installation

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\\\Hotfix_ folder by default).
2. Run **Hotfix.exe** from the command line with the **/deploy** parameter. Set the parameter value based on the installation type you are using:

   - **net45app** – web site project using .NET version 4.5
   - **net46app** – web site project using .NET version 4.6

Example: _Hotfix.exe /deploy=net45app_

This launches the Hotfix Utility, which then creates the files and folders necessary for updating a project running on .NET version 4.5 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 project running on .NET version 4.5 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's **CMS** folder (overwrite the original files).

> **Note:** **Important**
>
> If you have previously modified some of the Kentico project files (such as web parts or administration interface 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](https://docs.kentico.com/k10/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/separating-the-contact-management-database.md) – 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 and build the solution.

7. Bring your website back online (delete the **App\_Offline.htm** file).

## Applying the hotfix to Microsoft Azure

In the case of websites hosted on Microsoft Azure, you need to apply the hotfix to your local copy of the web application and then redeploy.

1. Run **Kentico Hotfix Utility (Hotfix.exe)** from the location where you installed the hotfix (_C:\Program Files\Kentico\\\Hotfix_ folder by default).
2. Select the folder containing your local version of the project using the **Browse** button or type in the path to the project manually.
3. Use the utility to back up your project files and/or database in case you have not already done so.
4. Select whether you want to update files, database or both. If your database is hosted on SQL Azure, you need to update it manually.
5. Click **Next** to start the hotfix procedure.
6. After the update finishes, click **Next** to view any problems that may have occurred and the instructions to solve them.
7. Open the project’s solution in Visual Studio and rebuild it.
8. Redeploy the application to Microsoft Azure.
9. If your website’s database is hosted on SQL Azure, manually execute the hotfix SQL scripts against it. 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](https://docs.kentico.com/k10/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/separating-the-contact-management-database.md) – 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).

## Applying the hotfix to MVC projects

If your website runs as a [separate ASP.NET MVC application](https://docs.kentico.com/k10/developing-websites/developing-sites-using-asp-net-mvc.md) (in addition to the Kentico administration application), use the following approach to apply the hotfix:

1. [Install the hotfix](#installing-the-hotfix) onto a local machine where you have your MVC and Kentico applications.
2. Apply the hotfix to the Kentico application (and the database) according to the instructions in the relevant section above.
3. Open your MVC application in Visual Studio.
4. Right-click your MVC project in the **Solution Explorer** and select **Manage NuGet Packages**.
5. Update the **Kentico.Libraries** NuGet package to the version that matches the applied hotfix.
6. Redeploy the local applications to your hosting server.

## 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.

## Additional notes and workarounds

### 10.0.11

- After applying the hotfix, you can configure the character encoding that the [continuous integration solution](https://docs.kentico.com/k10/developing-websites/preparing-your-environment-for-team-development/setting-up-continuous-integration.md) 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.

  ```xml title="Example"

  <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 __ key to the _appSettings_ section your project's web.config file, which returns the system to the pre-hotfix decimal processing behavior.

  > **Note:** **REST service errors**
  >
  > If you encounter errors when processing [REST service](https://docs.kentico.com/k10/integrating-3rd-party-systems/kentico-rest-service.md) 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.
  >
  > ```xml
  >
  > <add key="CMSRESTCulture" value="en-US" />
  >
  > ```
  >
  > We strongly recommend sending data in the **en-US** culture format.

### 10.0.16

- Heavy load on sites hosted on Microsoft Azure and utilizing the [51Degrees Premium integration](https://docs.kentico.com/k10/developing-websites/developing-websites-for-mobile-devices/configuring-mobile-development.md) 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](https://docs.kentico.com/k10/macro-expressions.md) 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:

  ```csharp title="Example - Device profile macro expression"

  maxWidth = 480;

  width = CurrentDevice.ScreenPixelsWidth;

  if (!CurrentDevice.IsMobile || (width > maxSideSize))
  {
      return false;
  }

  return true;

  ```

### 10.0.23

- When using macro expressions within [marketing automation](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/marketing-automation.md) 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](https://docs.kentico.com/k10/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/configuring-marketing-automation/walkthrough-sending-an-automated-reminder-of-an-abandoned-shopping-cart.md).

### 10.0.27

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](https://docs.kentico.com/k10/developing-websites/loading-and-displaying-data-on-websites/displaying-data-advanced-scenarios/displaying-maps.md) 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.

     ```js title="BingMaps.js"

     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.

     ```js title="BingMaps.js"

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

     ```

> **Info:** For more information, refer to the [Bing Maps V7 to V8 Migration Guide](https://social.technet.microsoft.com/wiki/contents/articles/34563.bing-maps-v7-to-v8-migration-guide.aspx) on Microsoft TechNet.

### 10.0.28

- The [SharePoint data source](https://docs.kentico.com/k10/integrating-3rd-party-systems/integrating-sharepoint/displaying-sharepoint-data-in-kentico.md) 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](https://docs.kentico.com/k10/developing-websites/loading-and-displaying-data-on-websites/writing-transformations.md) applied to the data source's output. For example:

  ```csharp

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

  ```

### 10.0.39

- When using **Text / XML** [transformations](https://docs.kentico.com/k10/developing-websites/loading-and-displaying-data-on-websites/writing-transformations.md), it was not possible to access the values of data fields whose name contained characters conflicting with the Kentico [macro syntax](https://docs.kentico.com/k10/macro-expressions/macro-syntax.md) (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"] %}_

### 10.0.42

- When using [Amazon S3 storage](https://docs.kentico.com/k10/custom-development/working-with-physical-files-using-the-api/configuring-file-system-providers/configuring-amazon-s3.md), 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:

  ```xml

  <add key="CMSAmazonRestApiEndPoint" value="https://s3.amazonaws.com" />

  ```

### 10.0.43

- The system did not trigger any [global events](https://docs.kentico.com/k10/custom-development/handling-global-events/reference-global-system-events.md)when creating objects by directly inserting data into a database table (for example when a user [imported contacts from a CSV file](https://docs.kentico.com/k10/on-line-marketing-features/managing-your-on-line-marketing-features/contact-management/working-with-contacts/importing-contacts.md)). If you need to perform custom actions before or after such object creation actions, apply the hotfix and then [assign a handler](https://docs.kentico.com/k10/custom-development/handling-global-events.md) to the new **SqlEvents.BulkInsert** event.
- When using multiple Kentico applications with a shared file system and enabled [web analytics](https://docs.kentico.com/k10/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/configuring-web-analytics.md), 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](https://docs.kentico.com/k10/configuring-kentico/managing-sites/setting-up-multiple-websites/running-multiple-sites-on-a-single-domain.md#avoiding-file-system-conflicts) page.

### 10.0.45

- The serialized data created by the [continuous integration](https://docs.kentico.com/k10/developing-websites/preparing-your-environment-for-team-development/setting-up-continuous-integration.md) 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](https://docs.kentico.com/k10/configuring-kentico/scheduling-tasks.md) (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.

     > **Info:** **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](http://devnet.kentico.com/download/hotfixes) on DevNet and click **Fixed bugs** for the appropriate Kentico version.
