Item Buckets might throws the following exception in Sitecore Log file during navigating on content tree:
ERROR Could not update index entry. Action: 'RemovedVersion', Item: '{E3E8C81D-1718-49CA-90B2-63382A0655F8}'
Exception: System.InvalidOperationException
Message: Version is not passed to RemoveVersion handler
Source: Sitecore.Kernel
at Sitecore.Diagnostics.Assert.IsNotNull(Object value, String message)
at Sitecore.ItemBucket.Kernel.Kernel.RemoteCrawlers.RemoteDatabaseCrawler.Provider_OnRemoveVersion(Object sender, EventArgs e) in p:\SitecoreItemBuckets\src\ItemBucket.Kernel\Kernel\RemoteCrawlers\RemoteDatabaseCrawler.cs:line 539
at System.EventHandler.Invoke(Object sender, EventArgs e)
at Sitecore.Data.Managers.IndexingProvider.RemoveVersion(HistoryEntry entry, Database database)
at Sitecore.Data.Managers.IndexingProvider.UpdateIndex(HistoryEntry entry, Database database)
The reason why this happens is because incorrect implicit type conversion is used in the Sitecore.ItemBucket.Kernel.Kernel.RemoteCrawlers. RemoteDatabaseCrawler.Provider_OnRemoveVersion(object sender, EventArgs e) method of the Sitecore.ItemBucket.Kernel project.
Instead of the “Sitecore.Data.Version” type, it uses “System.Version” one
To fix this issue you need to use “Sitecore.Data.Version” type:
. . .
Sitecore.Data.Version version = SitecoreEventArgs.GetObject(e, 3) as Sitecore.Data.Version;
Assert.IsNotNull(version, "Version is not passed to RemoveVersion handler");
using (IndexDeleteContext context = this._index.CreateDeleteContext())
{
this.DeleteVersion(iD, language.ToString(), version.ToString(), context);
context.Commit();
}
. . .
Item Buckets might throws the following exception in Sitecore Log file during navigating on content tree:
ERROR Could not update index entry. Action: 'RemovedVersion', Item: '{E3E8C81D-1718-49CA-90B2-63382A0655F8}' Exception: System.InvalidOperationException Message: Version is not passed to RemoveVersion handler Source: Sitecore.Kernel at Sitecore.Diagnostics.Assert.IsNotNull(Object value, String message) at Sitecore.ItemBucket.Kernel.Kernel.RemoteCrawlers.RemoteDatabaseCrawler.Provider_OnRemoveVersion(Object sender, EventArgs e) in p:\SitecoreItemBuckets\src\ItemBucket.Kernel\Kernel\RemoteCrawlers\RemoteDatabaseCrawler.cs:line 539 at System.EventHandler.Invoke(Object sender, EventArgs e) at Sitecore.Data.Managers.IndexingProvider.RemoveVersion(HistoryEntry entry, Database database) at Sitecore.Data.Managers.IndexingProvider.UpdateIndex(HistoryEntry entry, Database database)
The reason why this happens is because incorrect implicit type conversion is used in the Sitecore.ItemBucket.Kernel.Kernel.RemoteCrawlers. RemoteDatabaseCrawler.Provider_OnRemoveVersion(object sender, EventArgs e) method of the Sitecore.ItemBucket.Kernel project. Instead of the “Sitecore.Data.Version” type, it uses “System.Version” one
To fix this issue you need to use “Sitecore.Data.Version” type: . . . Sitecore.Data.Version version = SitecoreEventArgs.GetObject(e, 3) as Sitecore.Data.Version; Assert.IsNotNull(version, "Version is not passed to RemoveVersion handler"); using (IndexDeleteContext context = this._index.CreateDeleteContext()) { this.DeleteVersion(iD, language.ToString(), version.ToString(), context); context.Commit(); } . . .