SplatDev.Umbraco.Plugins.ExceptionManager
2.1.11
dotnet add package SplatDev.Umbraco.Plugins.ExceptionManager --version 2.1.11
NuGet\Install-Package SplatDev.Umbraco.Plugins.ExceptionManager -Version 2.1.11
<PackageReference Include="SplatDev.Umbraco.Plugins.ExceptionManager" Version="2.1.11" />
<PackageVersion Include="SplatDev.Umbraco.Plugins.ExceptionManager" Version="2.1.11" />
<PackageReference Include="SplatDev.Umbraco.Plugins.ExceptionManager" />
paket add SplatDev.Umbraco.Plugins.ExceptionManager --version 2.1.11
#r "nuget: SplatDev.Umbraco.Plugins.ExceptionManager, 2.1.11"
#:package SplatDev.Umbraco.Plugins.ExceptionManager@2.1.11
#addin nuget:?package=SplatDev.Umbraco.Plugins.ExceptionManager&version=2.1.11
#tool nuget:?package=SplatDev.Umbraco.Plugins.ExceptionManager&version=2.1.11
ExceptionManager
Umbraco exception handling middleware plugin — configures production error pages and developer exception pages based on the application environment.

Compatibility
| Umbraco | .NET | Package Version |
|---|---|---|
| 13.x | 8.0 | 2.1.11 |
| 17.x | 10.0 | 2.1.11 |
Installation
dotnet add package SplatDev.Umbraco.Plugins.ExceptionManager
Quick Start
The plugin auto-registers via ExceptionComposer — no explicit Program.cs registration needed.
Configuration
Add to appsettings.json:
{
"EnableExceptionManager": true
}
When UmbracoApplicationUrl is configured (via Umbraco:CMS:WebRouting:UmbracoApplicationUrl), the plugin uses UseExceptionHandler("/Error") for production-style error handling. When not set, it uses UseDeveloperExceptionPage().
How It Works
The ExceptionComposer hooks into the Umbraco pipeline via UmbracoPipelineFilter. Based on whether the Umbraco application URL is configured, it toggles between production error handling (redirects to /Error) and developer exception pages (detailed stack traces).
Known Limitations
- Uses
UmbracoApplicationUrlpresence as a production detection heuristic rather thanIsProduction()from the hosting environment - No custom error logging, notification, or error storage beyond the standard
/Errorroute - Does not support custom error page paths or status-code-specific error pages
Changelog
2.1.11 — 2026-08-26
The NuGet listing now shows the dashboard. It had no screenshot before, so the listing gave no picture of what the plugin looks like in the backoffice.
2.1.10 — 2026-08-26
Fixes a duplicate registration on sites that still have a physical App_Plugins folder for this plugin, left behind by an older release that copied content into the site. Umbraco registered those extensions twice - once from its own scan of the folder, once from this package's embedded manifest - and logged "Extension with alias ... is already registered". The embedded manifest now yields to the physical copy.
2.1.9 — 2026-08-24
Removes a dashboard screenshot that showed an error toast. It was captured against a site where this plugin's API was unreachable, so it advertised a broken dashboard. No screenshot is better than a misleading one; a replacement will be taken against a working install.
2.1.8 — 2026-08-24
Package metadata only: the listing now carries an icon and search tags, and the project and repository links point at the organisation that actually hosts this code. No code changes.
2.1.7 — 2026-08-21
- A failed request now says so in the dashboard. Previously the dashboard kept its previous (usually empty) state, so a refused or failed call looked identical to having no data.
2.1.6 — 2026-08-21
- Dashboard now sends the backoffice token with its API calls. On Umbraco 17 those calls were arriving unauthenticated and coming back 401, which the dashboard rendered as an empty state rather than an error.
- A failed request now raises a notification instead of leaving the dashboard looking like there is simply no data.
License
MIT © SplatDev
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.FileProviders.Embedded (>= 10.0.6)
- Umbraco.Cms.Core (>= 17.3.4)
- Umbraco.Cms.Web.Common (>= 17.3.4)
-
net8.0
- Microsoft.Extensions.FileProviders.Embedded (>= 8.0.11)
- Umbraco.Cms.Core (>= 13.12.0)
- Umbraco.Cms.Web.Common (>= 13.12.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.1.11 | 106 | 8/27/2026 |