Surendra Sharma

Surendra Sharma

Search This Blog

Tuesday, March 21, 2017

Solved : Unable to select or create items under a particular node in Sitecore



This is real life scenario where, clicking one particular node on the Sitecore content tree is throwing the error in in one of our project on Sitecore Authoring environment (CM).
 
This error is occurring only in master database. But when we switch to web database and select the same node, it works fine over there. We had also implemented custom pipelines for creating custom links, some item save events, url resolvers, etc. 

We tried to overwrite the Sitecore package for the same node from different Server environment. But even overwrite function also failed.

Below are the logs which are generating while expanding the node in Sitecore content tree:

6624 08:15:10 ERROR Failed to sort items
Exception: System.ArgumentNullException
Message: Value cannot be null.
Parameter name: uri
Source: Sitecore.Kernel
   at Sitecore.Data.ItemUri..ctor(ItemUri uri)
   at Sitecore.Data.ItemUri..ctor(String itemUri)
   at Sitecore.Data.Items.Item.GetItemUriFromSourceItem()
   at Sitecore.Data.Items.Item.get_SourceUri()
   at Sitecore.Data.Fields.Field.GetSourceItem()
   at Sitecore.Data.Fields.Field.GetInheritedValue(Boolean allowStandardValue)
   at Sitecore.Data.Fields.Field.GetValue(Boolean allowStandardValue, Boolean allowDefaultValue)
   at Sitecore.Data.Items.ItemAppearance.get_Sortorder()
   at Sitecore.Data.Comparers.ItemComparer.ExtractKey(Item item)
   at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Sitecore.Data.Managers.ItemProvider.Sort(ItemList items, Item owner)

6624 08:15:10 ERROR Error in gutter renderer
Exception: System.ArgumentNullException
Message: Value cannot be null.
Parameter name: uri
Source: Sitecore.Kernel
   at Sitecore.Data.ItemUri..ctor(ItemUri uri)
   at Sitecore.Data.ItemUri..ctor(String itemUri)
   at Sitecore.Data.Items.Item.GetItemUriFromSourceItem()
   at Sitecore.Data.Items.Item.get_SourceUri()
   at Sitecore.Data.Fields.Field.GetSourceItem()
   at Sitecore.Data.Fields.Field.GetInheritedValue(Boolean allowStandardValue)
   at Sitecore.Data.Fields.Field.GetValue(Boolean allowStandardValue, Boolean allowDefaultValue)
   at Sitecore.Data.Fields.Field.get_Value()
   at Sitecore.Shell.Applications.ContentEditor.Gutters.WorkflowState.GetIconDescriptor(Item item)
   at Sitecore.Shell.Applications.ContentEditor.Gutters.GutterRenderer.Render(HtmlTextWriter output, Item item)

6624 08:15:10 ERROR Application error.
Exception: System.Web.HttpUnhandledException
Message: Exception of type 'System.Web.HttpUnhandledException' was thrown.
Source: System.Web
   at System.Web.UI.Page.HandleError(Exception e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at ASP.sitecore_shell_applications_content_manager_execute_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\943e1849\478cf6da\App_Web_jv4g5f10.3.cs:line 0
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Nested Exception
Exception: System.ArgumentNullException
Message: Value cannot be null.
Parameter name: uri
Source: Sitecore.Kernel
   at Sitecore.Data.ItemUri..ctor(ItemUri uri)
   at Sitecore.Data.ItemUri..ctor(String itemUri)
   at Sitecore.Data.Items.Item.GetItemUriFromSourceItem()
   at Sitecore.Data.Items.Item.get_SourceUri()
   at Sitecore.Data.Fields.Field.GetSourceItem()
   at Sitecore.Data.Fields.Field.GetInheritedValue(Boolean allowStandardValue)
   at Sitecore.Data.Fields.Field.GetValue(Boolean allowStandardValue, Boolean allowDefaultValue)
   at Sitecore.Data.Fields.Field.get_Value()
   at Sitecore.Shell.Applications.ContentManager.Sidebars.Tree.GetClassName(Item item, Boolean active)
   at Sitecore.Shell.Applications.ContentManager.Sidebars.Tree.RenderTreeNode(HtmlTextWriter output, Item item, String inner, Boolean active)
   at Sitecore.Shell.Applications.ContentManager.Sidebars.Tree.RenderChildNodes(ID parent)
   at Sitecore.Shell.Applications.ContentManager.ExecutePage.Page_Load(Object sender, EventArgs e)
   at System.Web.UI.Control.LoadRecursive()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

We tried different approaches but for couple of days we were unable to resolve the issue. But finally we resolve it.

Solution:

The solution is pretty simple.

We simply deleted that node from master database and transferred the node from Web database to Master database. That resolved the issue.

Now we are able to select the node and able to create child items under the node.
Sometimes simple tricks also works :)

I hope you like this Sitecore tip. Stay tuned for more Sitecore related articles.

Till that happy sitecoring :)
 
Please leave your comments or share this tip if it’s useful for you.

Tuesday, March 7, 2017

WFFM form is not visible in browser when serve from CD server



I am using Web Forms For Marketers 8.1 rev. 151217 which are dynamically rendering on web page which perfectly working fine on my local machine by using below code

@Html.Sitecore().Rendering("{F2CCA16D-7524-4E99-8EE0-78FF6394A3B3}", new { Datasource = "<id of the form item>", UniqueId = "<unique id of the form rendering>" })

After deploying on CD server and when viewed on browser at client side, my WFFM form and its fields are rendering in hidden state. I am saying hidden as form and its fields are rendering on page which I can identify from View Source my webpage on browser.

How to make WFFM forms and its fields rendering in visible state?

Solution :-

I able to resolve this by

  • Reinstalling WFFM CM package on server
  • Republishing all WFFM related items 
  • Clear the Sitecore Cache

I have also raise this question on Stack Overflow at http://sitecore.stackexchange.com/questions/4299/wffm-form-hidden-state-on-rendering and answer the same.


I hope this trick may be useful for you.