---
title: Hotfix Instructions - Kentico 9 Source Code
---

> 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 view the list of fixed bugs on the [Kentico DevNet portal](http://devnet.kentico.com/download/hotfixes).

To obtain source code hotfixes, _**please contact your Kentico sales representative**_.

> **Info:** The following instructions apply only to the source code version of Kentico. For standard installations, please see [Hotfix Instructions - Kentico 9](https://docs.kentico.com/k9/installation/hotfix-instructions-kentico-9.md).

> **Note:** **Note**
>
> 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](https://docs.kentico.com/k9/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 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](#source-code-compilation-instructions).
10. Rebuild the solution.

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

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

   > **Note:** **Important**
   >
   > 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.

   - If you do not use separated databases – run the **Hotfix\_separated.sql** and **Hotfix\_default.sql** script files located in the **SQL** folder of your hotfix installation directory. We recommend running the files in the described order.
   - If you use [separated databases](https://docs.kentico.com/k9/on-line-marketing-features/contact-management/separating-the-contact-management-database.md) – run the **Hotfix\_separated.sql** script file on the separated database and **Hotfix\_default.sql** on your main database. The script files are located in the **SQL** folder of your hotfix installation directory.
6. Open the project in Visual Studio, follow the [compilation instructions](#source-code-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, Kentico Service Manager or the Kentico AD Import Utility.

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:

### 9.0.14

- Add a reference to the _Protection_ library in the _CMSOutputFilter_ project.

### 9.0.34

- The hotfix adds and removes a large number of files in the **PDFClown** project. You need to manually exclude deleted files and include new files into the project:

  1. Expand the **PDFClown** project in the solution (under the **CMSSolution\ThirdParty** solution folder).
  2. Manually delete the following files from the _PDFClown_ project:

     - src\org\pdfclown\cms\ISafeInputStream.cs
     - src\org\pdfclown\documents\contents\layers\ILayerNode.cs
     - src\org\pdfclown\documents\contents\layers\LayerGroup.cs
     - src\org\pdfclown\documents\contents\layers\ListModeEnum.cs
     - src\org\pdfclown\documents\interaction\annotations\CalloutNote.cs
     - src\org\pdfclown\documents\interaction\annotations\DualWidget.cs
     - src\org\pdfclown\documents\interaction\annotations\Note.cs
     - src\org\pdfclown\documents\interaction\annotations\RubberStamp.cs
  3. Right-click the **src\org\pdfclown** folder and select **Exclude From Project**.
  4. Click **Show all files** at the top of the Solution Explorer.
  5. Right-click the excluded **pdfclown** folder and select **Include In Project**.

### 9.0.40

- Add references to the following DLLsin the **AmazonStorage** project:
  - \~/Lib/AWSSDK.Core.dll
  - \~/Lib/AWSSDK.S3.dll
- Remove the reference to \~/Lib/AWSSDK.dll from the **AmazonStorage** project.

### 9.0.42

- Add a reference to _\~\Lib\Microsoft.SqlServer.TransactSql.ScriptDom.dll_ in the **DataEngine** project.

## Additional notes and workarounds

### General

- Installer - An error occurred during the Kentico installation when running on an operating system with the Turkish system language. To fix the problem, you need to re-download the installer from the Kentico website.
- Email marketing - The **Check bounced emails** [scheduled task](https://docs.kentico.com/k9/configuring-kentico/scheduling-tasks.md) does not work when executed using the external scheduling service. If you use the external scheduling service, either manually disable the **Use external service** property of the task in the _Scheduled tasks_ application or apply **hotfix 9.0.5** or newer, which disables the property for all instances of the task. You may need to manually disable the property for new instances of the task after creating or importing a new site.

### 9.0.3

- E-commerce API - The **ShoppingCartInfoProvider.CartCanBeUsedOnSiteInternal** method now correctly returns a  _**true**_  value if the cart can be used on the specified site. You may need to update your custom code if you use this method.

### 9.0.7

- Smart Search - The [smart search crawler](https://docs.kentico.com/k9/configuring-kentico/setting-up-search-on-your-website/creating-search-indexes/defining-page-indexes.md) does not index pages on HTTPS sites without a certificate from a trusted authority. If you need to use the search crawler with a self-signed certificate, you can override the certificate validation by adding the new **\<add key="CMSSearchCrawlerAcceptAllCertificates" value="true" />** key to your web.config. We advise using the key only in testing or development environments.

### 9.0.12

- Macros - Before applying the hotfix, [resigning macros](https://docs.kentico.com/k9/macro-expressions/troubleshooting-macros/working-with-macro-signatures.md) with an _Old salt_ value specified converted macro expressions containing open conditions or loops into an internal format that was difficult to read. If you have encountered this problem, you need to manually re-save any affected macros (after applying the hotfix).

### 9.0.26

- Continuous integration - The serialized data created for inherited web parts by the [continuous integration solution](https://docs.kentico.com/k9/developing-websites/preparing-your-environment-for-team-development/setting-up-continuous-integration.md) was different every time the web part was stored, even if the web part definition was not changed (new GUID values were generated for property definitions during every store operation). To fix the problem, you need to apply hotfix 9.0.26 and then manually re-save the property definitions for all inherited web parts:
  1. Open the **Web parts** application.
  2. Select the inherited web part.
  3. Switch to the **Properties** tab and click **Save**.

### 9.0.29

- Continuous integration - The serialized data created by the continuous integration solution for inherited web parts was incomplete. As a result, certain property settings were incorrect after restoring inherited web parts from the repository. To fix the problem, you need to apply hotfix 9.0.29 and then serialize all objects:
  1. Disable running of [scheduled tasks](https://docs.kentico.com/k9/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 change may cause some web parts (including non-inherited ones) to have different ordering of properties in the serialized continuous integration data. You can resolve this issue and ensure alphabetical ordering by manually re-saving the property definitions of the given web parts.

### 9.0.30

- Field editor - When editing inherited forms (for example properties of widgets or inherited web parts), the system incorrectly reported inherited fields as modified and the 'Reset field' button was active, even for fields that were unchanged from the original form. To fix the problem:
  1. Apply hotfix 9.0.30.
  2. Manually re-save any field in the original form.
  3. Re-save any field in the inherited form.

### 9.0.40

- If you are applying the hotfix manually to a remote deployment, we recommend deleting the **AWSSDK.dll** file from the remote web project's **CMS\bin** folder (the DLL is no longer used after applying the hotfix).

### 9.0.50

- Contact management - When the deletion of inactive contacts took longer than 1 minute, the next run of the **Delete inactive contacts** scheduled task was not set, and the task did not execute again. To fix the problem, you need to apply hotfix 9.0.50 and then manually execute the scheduled task:

  1. Open the **Scheduled tasks** application.
  2. Select the \*(global)\*option in the **Site**selector.
  3. Click**Execute**next to the _Delete inactive contact&#x73;_&#x73;cheduled task.

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