The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.
I'm not liking 7.6.1 so far!
Latest error message and I'm not sure what to do. This is the web browser message & stack trace error from the umbraco back office. I was just editing a content page and blamo!
The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Exception: The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[Exception: The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.]
Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedContentCache.HasContent(UmbracoContext umbracoContext, Boolean preview) +243
Umbraco.Web.PublishedCache.ContextualPublishedCache`1.HasContent(Boolean preview) +34
Umbraco.Web.UmbracoModule.EnsureUmbracoRoutablePage(UmbracoContext context, HttpContextBase httpContext) +173
Umbraco.Web.UmbracoModule.ProcessRequest(HttpContextBase httpContext) +284
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165
Back office error:
Received an error from the server
An error occurred
Object reference not set to an instance of an object.
Exception Details:
System.NullReferenceException: Object reference not set to an instance of an object.
Stack Trace:
at umbraco.cms.businesslogic.web.Document.ToXml(XmlDocument xd, Boolean Deep)
at umbraco.content.PublishNodeDo(Document d, XmlDocument xmlContentCopy, Boolean updateSitemapProvider)
at umbraco.content.UpdateDocumentCache(Document d)
at Umbraco.Web.Cache.PageCacheRefresher.Refresh(IContent instance)
at Umbraco.Core.Sync.ServerMessengerBase.DeliverLocal[T](ICacheRefresher refresher, MessageType messageType, Func`2 getId, IEnumerable`1 instances)
at Umbraco.Core.Sync.ServerMessengerBase.Deliver[T](IEnumerable`1 servers, ICacheRefresher refresher, MessageType messageType, Func`2 getId, IEnumerable`1 instances)
at Umbraco.Web.Cache.DistributedCache.Refresh[T](Guid factoryGuid, Func`2 getNumericId, T[] instances)
at Umbraco.Web.Cache.DistributedCacheExtensions.RefreshPageCache(DistributedCache dc, IContent[] content)
at Umbraco.Core.Events.TypedEventHandler`2.Invoke(TSender sender, TEventArgs e)
at Umbraco.Core.Events.ScopeEventDispatcher.ScopeExitCompleted()
at Umbraco.Core.Events.ScopeEventDispatcherBase.ScopeExit(Boolean completed)
at Umbraco.Core.Scoping.Scope.TryFinally(Int32 index, Action[] actions)
at Umbraco.Core.Scoping.Scope.TryFinally(Int32 index, Action[] actions)
at Umbraco.Core.Scoping.Scope.RobustExit(Boolean completed, Boolean onException)
at Umbraco.Core.Scoping.Scope.DisposeLastScope()
at Umbraco.Core.Scoping.Scope.Dispose()
at Umbraco.Core.Persistence.UnitOfWork.ScopeUnitOfWork.DisposeResources()
at Umbraco.Core.DisposableObject.Dispose(Boolean disposing)
at Umbraco.Core.DisposableObject.Dispose()
at Umbraco.Core.Services.ContentService.SaveAndPublishDo(IContent content, Int32 userId, Boolean raiseEvents)
at Umbraco.Web.Editors.ContentController.PostSave(ContentItemSave contentItem)
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()
Hi Christine,
We had the same problem, I could publish the page after removing umbraco.config and recyle app pool! But why this error happens in the first place? how can we avoid this on PRODUCTION SITE?
Quick note just to highlight that I received this error whilst setting up a staging website - 7.6.5, Plesk, FTP copy, database copy, some file permission issues (resolved), App_Data/Cache not copied - and was stumped for a while on this.
Copying over the other site's App_Data moved the error along to a PetaPoco Null Argument Exception but the connection string was fine.
The problem? <add key="umbracoUseSSL" value="true"/> The staging website didn't have an SSL certificate or even a domain attached.
Edit: Sorry should have made it clear - setting <add key="umbracoUseSSL" value="false"/> solved the issue. Deleting Umbraco.config (and\or the App_Data folder) and refreshing the application folder didn't resolve this version of the issue.
@Dan - I've update my original post to make things a little more clear. Just wanted to post to help others in the same predicament. I couldn't run the Health Check as the website didn't progress that far (unless there is an offline way to check); besides which the file was A okay on the Live environment. Thanks.
Wondering if there was ever a solution to this, i'm seeing it a lot on a v7.15.7 site.
Error displayed is 'The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.' There is no health check data integrity errors shown and certainly no way to fix it from there.
The only way ive been able to get the sites running is to republish the site from the content section (right click, republish site) which works everytime.
Problem here is that this is happening in a load balanced environment as well as local - load balanced is setup on Azure and we have no access to the front end site, only the admin site (locked down by rewrite rules) so impossible to fix
I've searched through the Umbraco source for those error strings but cannot find them - Just want to try and understand how the error is triggered and work it back from there.
Any suggestions?
Full error is:
Server Error in '/' Application.
The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Exception: The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[Exception: The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.]
Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedContentCache.GetXml(UmbracoContext umbracoContext, Boolean preview) +80
Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedContentCache.HasContent(UmbracoContext umbracoContext, Boolean preview) +14
Umbraco.Web.PublishedCache.ContextualPublishedCache`1.HasContent(Boolean preview) +35
Umbraco.Web.UmbracoModule.EnsureHasContent(UmbracoContext context, HttpContextBase httpContext) +41
Umbraco.Web.UmbracoModule.EnsureUmbracoRoutablePage(UmbracoContext context, HttpContextBase httpContext) +112
Umbraco.Web.UmbracoModule.ProcessRequest(HttpContextBase httpContext) +211
Umbraco.Web.UmbracoModule.
today I had the same issue in UAT environment even it was working in DEV environment. Finally it occurred to me that it could be the folder permissions as I deployed the website using CI/CD pipeline by copying all files from build machine. I checked permissions of the root website foder that IIS application is mapped to, compared with DEV one and noticed that there is missing Application Pool identity in the list in UAT. I added it and forced to update on all subfolders and files and it worked right after that!
Based on that I now believe this error message is absolutely unrelated to any XML corruption or cache problem. This is a general error message that can be caused by dozens of reasons!
The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.
I'm not liking 7.6.1 so far!
Latest error message and I'm not sure what to do. This is the web browser message & stack trace error from the umbraco back office. I was just editing a content page and blamo!
Back office error:
Hi Christine,
Have you tried deleting and regenerating your Umbraco cache file?
You can find it in:
Once you have deleted it, recycle your AppPool and hit your site again and it should automatically re-create it for you.
Regards
Craig
Hi Christine, did this resolve your issue?
Hi Craig, we deleted and regenerated our Umbraco cache, and the issue came right back. The new cache was corrupted again.
Thank you. Recycling the app pool afterwards was the thing I hadn't done that fixed me having exactly this problem just now.
Thank you! 😊
Hi Christine, We had the same problem, I could publish the page after removing umbraco.config and recyle app pool! But why this error happens in the first place? how can we avoid this on PRODUCTION SITE?
Thanks!
Quick note just to highlight that I received this error whilst setting up a staging website - 7.6.5, Plesk, FTP copy, database copy, some file permission issues (resolved), App_Data/Cache not copied - and was stumped for a while on this.
Copying over the other site's App_Data moved the error along to a PetaPoco Null Argument Exception but the connection string was fine.
The problem?
<add key="umbracoUseSSL" value="true"/>
The staging website didn't have an SSL certificate or even a domain attached.Edit: Sorry should have made it clear - setting
<add key="umbracoUseSSL" value="false"/>
solved the issue. Deleting Umbraco.config (and\or the App_Data folder) and refreshing the application folder didn't resolve this version of the issue.Have you tried doing as the error advises and use the Health Check data integrity dashboard to fix it?
@Dan - I've update my original post to make things a little more clear. Just wanted to post to help others in the same predicament. I couldn't run the Health Check as the website didn't progress that far (unless there is an offline way to check); besides which the file was A okay on the Live environment. Thanks.
any idea how to prevent this error in the future?
Wondering if there was ever a solution to this, i'm seeing it a lot on a v7.15.7 site.
Error displayed is 'The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.' There is no health check data integrity errors shown and certainly no way to fix it from there.
The only way ive been able to get the sites running is to republish the site from the content section (right click, republish site) which works everytime.
Problem here is that this is happening in a load balanced environment as well as local - load balanced is setup on Azure and we have no access to the front end site, only the admin site (locked down by rewrite rules) so impossible to fix
I've searched through the Umbraco source for those error strings but cannot find them - Just want to try and understand how the error is triggered and work it back from there.
Any suggestions?
Full error is:
Server Error in '/' Application. The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Exception: The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[Exception: The Xml cache is corrupt. Use the Health Check data integrity dashboard to fix it.] Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedContentCache.GetXml(UmbracoContext umbracoContext, Boolean preview) +80 Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedContentCache.HasContent(UmbracoContext umbracoContext, Boolean preview) +14 Umbraco.Web.PublishedCache.ContextualPublishedCache`1.HasContent(Boolean preview) +35 Umbraco.Web.UmbracoModule.EnsureHasContent(UmbracoContext context, HttpContextBase httpContext) +41 Umbraco.Web.UmbracoModule.EnsureUmbracoRoutablePage(UmbracoContext context, HttpContextBase httpContext) +112 Umbraco.Web.UmbracoModule.ProcessRequest(HttpContextBase httpContext) +211 Umbraco.Web.UmbracoModule.
Oh and the content node links show as Could not get the url :(
Hi all,
today I had the same issue in UAT environment even it was working in DEV environment. Finally it occurred to me that it could be the folder permissions as I deployed the website using CI/CD pipeline by copying all files from build machine. I checked permissions of the root website foder that IIS application is mapped to, compared with DEV one and noticed that there is missing Application Pool identity in the list in UAT. I added it and forced to update on all subfolders and files and it worked right after that!
Based on that I now believe this error message is absolutely unrelated to any XML corruption or cache problem. This is a general error message that can be caused by dozens of reasons!
is working on a reply...