Contents
Overview
After upgrading to DNN 9.13.10, page editing can fail with internal-services errors such as an HTTP 500 on /API/internalservices/controlBar/ToggleUserMode and UI/service errors like “Error occurred when request service 'GetPortalDesktopModules'.”
In affected environments, logs can show a DNN initialization failure tied to Telerik assembly loading (for example, a FileNotFoundException for Telerik.Web.UI). This typically occurs when Telerik has been manually removed during/after the upgrade but Telerik-related DLLs remain in an inconsistent (partial) state in the site’s /bin folder. No product defect or fixed version was identified; this is a dependency/assembly state issue in the upgraded instance.
Solution
Symptoms
- Browser console shows HTTP 500 on
/API/internalservices/controlBar/ToggleUserMode. - When entering edit mode via Content → Pages, adding a module fails with: “Error occurred when request service 'GetPortalDesktopModules'.”
Prominent log error
Reviewing logs may show a platform initialization failure similar to:
System.TypeInitializationException: The type initializer for 'DotNetNuke.ExtensionPoints.ExtensionPointManager' threw an exception.
---> System.IO.FileNotFoundException: Could not load file or assembly 'Telerik.Web.UI, Version=2013.2.717.40, Culture=neutral, PublicKeyToken=121fae78165ba3d4' or one of its dependencies. The system cannot find the file specified.
What’s happening (root cause)
- This can happen when Telerik has been partially removed from the site.
- One or more Telerik-related DLLs remain in
/bin, but referenced Telerik dependencies are missing. - In this partial/orphaned state, the .NET assembly loader attempts to satisfy dependencies referenced by the remaining DLL’s metadata and triggers a FileNotFoundException during DNN initialization.
- This failure can surface as broken Control Bar/internal services calls (for example,
ToggleUserMode) and related API-backed UI operations (for example,GetPortalDesktopModules).
Resolution (confirmed approach)
Prerequisites / safety
- Take a full backup:
- Site files (at minimum:
/binandweb.config) - Database backup
- Site files (at minimum:
Step 1 — Confirm whether Telerik is still required
- Run a Telerik dependency scan (example tool used in this case: DNN Telerik Identifier):
- Review the report for any modules/providers/skins that still reference Telerik.
- If dependencies are reported, upgrade/replace/remove those dependencies before proceeding.
- Note: Third-party tools are not officially supported; use them as a diagnostic aid.
Step 2 — Remove Telerik assemblies together (avoid partial removal)
If your dependency scan shows no active Telerik dependencies, remove the related DLLs as a set from your production site’s /bin folder:
Telerik.Web.UI.dllTelerik.Web.UI.Skins.dllDotNetNuke.Web.Deprecated.dll
Important: Do not leave only one (or some) of these behind. Partial presence (for example, leaving only Telerik.Web.UI.Skins.dll) can trigger assembly resolution for missing referenced assemblies and reproduce the editing/API failure.
Step 3 — Restart and validate
- Restart the application (touch
web.configor recycle the app pool). - Validate:
- Enter edit mode normally (ensure
/API/internalservices/controlBar/ToggleUserModeno longer returns 500). - Add a module (ensure the GetPortalDesktopModules error no longer appears).
- Enter edit mode normally (ensure
- Monitor logs for any new/unexpected exceptions, especially Telerik-related
FileNotFoundExceptionentries.
Rollback Plan
If unexpected issues occur after removal:
- Restore the backed up
/binandweb.config. - Recycle the app pool.
- Re-test editing and module add operations.
Frequently Asked Questions
- 1. How do I know this is the same issue?
-
You see editing failures after upgrading to DNN 9.13.10, including an HTTP 500 on
/API/internalservices/controlBar/ToggleUserModeand/or “Error occurred when request service 'GetPortalDesktopModules'.” Logs may also show a Telerik load failure such as: “Could not load file or assembly 'Telerik.Web.UI, Version=2013.2.717.40'…”. - 2. Why does removing only some Telerik DLLs break editing?
-
Leaving a remaining Telerik-related DLL can cause the .NET loader to try resolving dependencies referenced by that DLL. If the referenced assemblies aren’t present, DNN initialization can fail with
FileNotFoundException, which then manifests as internal services/editing errors. - 3. Is it safe to keep Telerik DLLs in /bin?
-
Keeping Telerik DLLs can be a short-term stabilization step if something still depends on them, but it indicates Telerik removal is not complete. If dependency scans and testing show no Telerik dependencies, removing the Telerik DLLs together is a cleaner end state and helps avoid partial/orphaned assembly problems.
- 4. What should I validate after removing the DLLs?
-
- Confirm edit mode works without a 500 on
/API/internalservices/controlBar/ToggleUserMode. - Confirm adding a module no longer shows “Error occurred when request service 'GetPortalDesktopModules'.”
- Monitor logs to ensure no new Telerik-related
FileNotFoundExceptionentries appear.
- Confirm edit mode works without a 500 on
- 5. What if the Telerik Identifier tool shows no dependencies but errors persist?
-
Re-check that all three DLLs were removed together, then restart the application pool and re-test. If the error persists, collect the exact log entries around the failure (including stack traces) and your current
/bininventory for further analysis.
Priyanka Bhotika
Comments