Sitecore: Server Error in '/' Application : Empty strings are not allowed. Parameter name: handleId - sitecore

My regression testing is on going to an upgraded Sitecore instance of 8.0-U3 to 8.1-U2. And one piece of the testing is to check if the workflow is properly working as expected.
So I created a new sample item named PAGE ABC (template: /sitecore/templates/Sample/Sample Item) under the /sitecore/content/home node.
The workflow of the PAGE ABC is 'Sample workflow' (template: /sitecore/system/Workflows/Sample Workflow) which was provided on a freshly installed Sitecore instance.
The PAGE ABC was created without any issue, but when I submitted the PAGE ABC, I encountered an ArgumentException shown below:
Server Error in '/' Application.
________________________________________
Empty strings are not allowed.
Parameter name: handleId
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.ArgumentException: Empty strings are not allowed.
Parameter name: handleId
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:
[ArgumentException: Empty strings are not allowed.
Parameter name: handleId]
Sitecore.Diagnostics.Assert.ArgumentNotNullOrEmpty(String argument, String argumentName) +204
Sitecore.Workflows.WorkflowUIHelper.ExtractFieldsFromFieldEditor(String handleId) +48
Sitecore.Shell.Framework.Commands.Workflow.Run(ClientPipelineArgs args) +900
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +128
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +146
Sitecore.Reflection.ReflectionUtil.InvokeMethod(MethodInfo method, Object[] parameters, Object obj) +89
Sitecore.Nexus.Pipelines.NexusPipelineApi.Resume(PipelineArgs args, Pipeline pipeline) +313
Sitecore.Web.UI.Sheer.ClientPage.ResumePipeline() +224
Sitecore.Web.UI.Sheer.ClientPage.OnPreRender(EventArgs e) +825
Sitecore.Shell.Applications.ContentManager.ContentEditorPage.OnPreRender(EventArgs e) +24
System.Web.UI.Control.PreRenderRecursiveInternal() +197
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +7763
________________________________________
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1073.0
Note: In this case, all the required fields are populated. I also tried leaving one (1) required field empty but same problem persist.
I searched for the keyword 'handleId' parameter on the entire website and I found this section on my \temp folder _UpgradeHistory which I suspected has something to do with the above issue inside the Sitecore.Kernel.xml
<member name="M:Sitecore.Workflows.WorkflowUIHelper.ExtractFieldsFromFieldEditor(System.String)">
<summary>
Extract the field values set by the field editor
</summary>
<param name="handleId">The Id of the handle holding the return values from the field editor</param>
<returns>A NameValueCollection containg the fields</returns>
</member>
I also tried searching over the internet, but I didn't find any relative solution to my problem.
Edited: I created a freshly instance of Sitecore v.8.1-U2. Replace the master db in the ConnectionString.config of the upgrade instance and the workflow submit action works, then I attached back the upgraded master database and I encountered again the issue.
Edited: I actually also noticed that there's a difference in the dialog box of the workflow. It is small compared to the working instance, which is a bigger dialog box. See supporting screenshots below:
Figure 1 : Not working workflow
Figure 2 : Working workflow
I will post a more detailed investigation when I got new information. Appreciate any help. Thanks.

I found the fix and the root cause.
First, I recreated the issue by creating a new workflow 'WORKFLOW ABC' under /sitecore/system/Workflows, I added the necessary actions, such as Draft and Published, and then create a new template and assign the 'WORKFLOW ABC'. I also created an actual item and tried to change the workflow of the item from Submit to Published. The error appeared once again. (successful replication of the issue)
Then I did the same process to a freshly installed instance and I wasn't able to replicate the issue.
Root cause:
So I compared both values and there's a discrepancy, the Default Comment Template field was empty (why it took me so long to figured this out) but is existing to the freshly installed 8.1-U2 instance.
Resolution:
I changed the value of the Default Comment Template field from empty to \Templates\System\Workflow\Standard Comment Template and test again and it works.
Screenshot for easy visualization:
You may also want to update the Default Comment Dialog Height field value to 250, but this one is optional.

EDITED
Since when changing the master database, the workflow works. Then the issue comes with the items. Can you check if the template of the workflow is the same as compared with the working instance.
Path is /sitecore/templates/System/Workflow

Related

Sitecore is throwing a database node exception in the CD environment

WFFM works great in the CM environment.
In the CD environment, I unpacked the content inside of Web Forms for Marketers CD 8.2 rev. 161129.zip in my Website folder. I then:
On all the CD servers, in the \Website\App_Config\Include\Sitecore.Forms.Config file, remove or disable the following sections. <hook type="Sitecore.Form.Core.WffmActionHook, Sitecore.Forms.Core"/>
Removed the <event name="wffm:action:remote"> section as well.
I added <setting name="WFM.IsRemoteActions" value="true" /> and <setting name="WFM.IsRemoteActions" value="true" />.
In my connectionstrings.config, there is no connection name for master. We've decided to remove all references to master in the CD environment.
In the showconfig file, I see <setting name="WFM.MasterDatabase" value="web" patch:source="Sitecore.Forms.config" />.
I published the entire site from CM to CD. When I look at the page in the CD environment, I get the following exception:
Exception: System.InvalidOperationException
Message: Could not find configuration node: databases/database[#id='master']
Source: Sitecore.Kernel
at Sitecore.Diagnostics.Assert.IsTrue(Boolean condition, String format, Object[] args)
at Sitecore.Configuration.DefaultFactory.GetConfigNode(String xpath, Boolean assert)
at Sitecore.Configuration.DefaultFactory.CreateObject(String configPath, String[] parameters, Boolean assert)
at Sitecore.Configuration.DefaultFactory.GetDatabase(String name, Boolean assert)
at Sitecore.Configuration.DefaultFactory.GetDatabase(String name)
at Sitecore.Marketing.Definitions.Goals.Data.ItemDb.GoalDefinitionItemRepository..ctor(String databaseName, Boolean assumeActive, IDefinitionRecord
Mapper`1 mapper)
at Sitecore.Marketing.Definitions.Goals.Data.ItemDb.GoalDefinitionItemRepository..ctor(String databaseName, Boolean assumeActive)
Following this post, I truncated the links table in the Core database, and rebuilt it again. Still, no luck!
What am I doing wrong?
After going back and forth with Sitecore Support, they noted that this issue is not related to WFFM, but to the Goals definitions that cannot be loaded.
Response from Sitecore
The issue that SwitchMasterToWeb config leaves a reference to the Master database in node was registered as a bug in our bug tracking system.
To track the future status of this bug report, please use the reference number 98770
Important
Make sure the following changes are made ONLY in the CD environment(s).
Open \App_Config\Include\Sitecore.Marketing.config, and change the followings:
from <itemRepositoriesDatabase>master</itemRepositoriesDatabase> to <itemRepositoriesDatabase>web</itemRepositoriesDatabase>
Doing so, will cause a Sitecore.ContentSearch.Exceptions.IndexNotFoundException exception. Stack trace will include:
Exception: Sitecore.ContentSearch.Exceptions.IndexNotFoundException
Message: Index sitecore_marketingdefinitions_master was not found
Source: Sitecore.ContentSearch
at Sitecore.ContentSearch.ContentSearchManager.GetIndex(String name)
at Sitecore.Marketing.Search.BaseDefinitionSearchProvider`2..ctor(String indexName)
According to this article, sitecore_marketingdefinitions_master index should not be present on CD. To fix this issue, open \App_Config\Include\Sitecore.Marketing.Search.config, and change the following:
from <searchIndexName>sitecore_marketingdefinitions_master</searchIndexName> to <searchIndexName>sitecore_marketingdefinitions_web</searchIndexName>
Hit /admin/showconfig.aspx or use SIM to make a config xml and look for "master". You should not have any. Wherever it is, check the patch source and write a patch for that file. Maybe put it in Switchtomaster.config.

sitecore media item error

I am on v8.2
I see the following error in the log file:
ERROR Could not run the 'getMediaStream' pipeline for '/sitecore/media library/test image'.
Original media data will be used.
Exception: System.ArgumentException
Message: Empty strings are not allowed.
Parameter name: filePathOrExtension
Source: Sitecore.Kernel
at Sitecore.Diagnostics.Assert.ArgumentNotNullOrEmpty(String argument, String argumentName)
at Sitecore.Resources.Media.MediaThumbnailGenerator.GetThumbnailFileName(MediaData mediaData, TransformationOptions options)
at Sitecore.Resources.Media.MediaThumbnailGenerator.GetStream(MediaData mediaData, TransformationOptions options)
at Sitecore.Resources.Media.MediaData.GetThumbnailStream(TransformationOptions options)
at Sitecore.Resources.Media.ThumbnailProcessor.Process(GetMediaStreamPipelineArgs args)
at (Object , Object[] )
at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
at Sitecore.Pipelines.DefaultCorePipelineManager.Run(String pipelineName, PipelineArgs args, String pipelineDomain)
at Sitecore.Resources.Media.Media.GetStreamFromPipeline(MediaOptions options, Boolean& canBeCached)
I guess it is because of this error, the media items I attach to the branch template don't really work when I create an item in the Media Library using that branch template.
It could be related to rainbow.config, I am not sure.
Does anyone have an idea?
I went through stack trace you've provided.
Exception happens within
Sitecore.Resources.Media.MediaThumbnailGenerator.GetThumbnailFileName(MediaData mediaData, TransformationOptions options)
The only place where can be thrown System.ArgumentException with message 'Empty strings are not allowed.' and Parameter name: filePathOrExtension is ctor of GetFileIconPipelineArgs:
'cause:
I can assume that mediaData.Extension contains empty string.
Getter of Extension property says that it uses 'Extension' field of media item.
So I suggest to check what is value of 'Extension' field of '/sitecore/media library/test image' media item. I'm sure you'll find that it's empty.
I have the same error and realized that the error does not appear when an English item of the same version is present. My assumption is that the pipeline looks for a wrong version, meaning that English or the default language is used.
Here are all of my observations (haven't had time to investigate further):
Issue appears only for versioned media items
Issue appears only for non-English or non-default language (TBD)
Issue appears when an item is selected for which no English- or Default-language version of the same value exists (e.g. when you request the item in German version 2 and there is only a version 1 in English)
Issue persists in Sitecore 8.2 update 5
From my observations I assume that the getMediaStream pipeline overrides the requested language which leads to an empty value in the Extension and/or File Name.
The Sitecore client seems to send the wrong language to the server when trying to render the preview element. When I look at the German version of an item the request looks like this:
<SERVER URL>/sitecore/shell/Applications/-/media/<Item ID>.ashx?bc=white&db=master&h=128&la=en&mw=640&thn=1&vs=1&ts=e73e6b27-b0db-45d7-a3c9-29830ad0191a&udi=1
Note that the requested language is English. When I change the parameter to de, the request works.
Can anyone confirm this behaviour? It looks like a Sitecore bug to me.
I got the same log error as well, but happened on attaching a new file (pdf) after detaching the older file. It was impossible to upload the new file, it simply wouldn't upload (got a nice asp.net error in the i-frame, with the same error as above).
I ended up deleting the media item completely and recreate it with the newer file attached, as a workaround.
Maybe a glitch, maybe a user issue... but not reproduced it yet. I'll get back on this, if I find a fix, or a how to reproduce at least.

Field "Tracking" from the Form template is throwing an exception

I am having some issues getting the WFFM (Web Forms for Marketers) 8.1 to work in a Sitecore 8.1 solution .... and I guess the reason is the below error that I get on the Tracking field from the Advanced section (Standard fields).
Does anyone have a clue why I get this error on the clean WFFFM installation? Thank you in advance. (log below)
Exception:
[ArgumentNullException: Value cannot be null.
Parameter name: item]
`Sitecore.Diagnostics.Assert.ArgumentNotNull(Object argument, String argumentName) +63
Sitecore.Analytics.Data.Items.<GetDescendants>d__8.MoveNext() +98
System.Linq.WhereSelectEnumerableIterator 2.MoveNext() +118
System.Linq.<ConcatIterator>d__58 1.MoveNext() +178
System.Linq.WhereEnumerableIterator 1.MoveNext() +108
System.Linq.Enumerable.FirstOrDefault(IEnumerable 1 source) +147
Sitecore.Shell.Applications.Analytics.TrackingField.TrackingFieldDetailsPage.RenderEvents(HtmlTextWriter output, XDocument doc, IEnumerable 1 pageEventDefinitions, Boolean isGoals, Boolean isFailures) +362
Sitecore.Shell.Applications.Analytics.TrackingField.TrackingFieldDetailsPage.RenderTracking(HtmlTextWriter output, XDocument doc) +379
Sitecore.Shell.Applications.Analytics.TrackingField.TrackingFieldDetailsPage.OnLoad(EventArgs e) +409
System.Web.UI.Control.LoadRecursive() +68
System.Web.UI.Control.LoadRecursive() +165
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4498`
Update: tried to install the newest version of WFFM 8.1 Update 2 but I see the same issue. Also tried to install the WFFM against new clean Core and Master databases and I get an error I was previously getting .. Post condition failed.
This looks like there's an issue with your config.
One thing to check, make sure you have analyticsDefinitions="content" specified on the defintion of your shell site in your web.config
Failing this try to Deploy Marketing Definitions in Control Panel -> Analytics.
Finally managed to fix the issues with WFFM after upgrading from 7 to 8.1. The exception I was getting on the Tracking field was related to the answer above .. the analyticsDefinitions="content" attribute was missing from the shell website.
Also there was a bug related to the Tracking field, throwing an exception "Unrecognized guid format" which was crashing WFFM. The below article solved the second issue.
https://reasoncodeexample.com/2015/03/26/sitecore-linkdatabase-unrecognized-guid-format/

Sitecore Error: Could not create instance of type: Sitecore.Form.Core.WffmActionHandler. No matching constructor was found

Has anyone ran into the issue below? Basically, I am trying to upgrade the Web forms for Marketers from 8.0-U3 to 8.0-U4(successful) to 8.1-Initial release (not successful).
The error was during the update installation process:
http://upgrade/sitecore/admin/UpdateInstallationWizard.aspx
It says:
The installation has encountered a critical error.
This Sitecore installation cannot be used for either testing or
production purposes until Sitecore support is contacted. Make sure to
download and include the file containing diagnostic information about
your Sitecore installation.
Server Error in '/' Application.
Could not create instance of type: Sitecore.Form.Core.WffmActionHandler. No matching constructor was found.
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: Sitecore.Exceptions.ConfigurationException: Could not create instance of type: Sitecore.Form.Core.WffmActionHandler. No matching constructor was found.
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:
[ConfigurationException: Could not create instance of type: Sitecore.Form.Core.WffmActionHandler. No matching constructor was found.]
Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert) +272
Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) +131
Sitecore.Events.EventSubscribers.Add(String eventName, XmlNode configNode) +545
Sitecore.Events.Event.GetConfigSubscribers() +564
Sitecore.Events.Event.RaiseEvent(String eventName, Object[] parameters) +338
Sitecore.Data.DataProviders.Sql.SqlDataProvider.SetProperty(String parameterName, String value, CallContext context) +259
Sitecore.Data.DataProviders.DataProvider.SetProperty(String name, String value, CallContext context, DataProviderCollection providers) +124
Sitecore.Data.DataManager.SetProperty(String name, String value) +103
Sitecore.Web.Authentication.TicketManager.IsTicketExpired(Ticket ticket, Boolean useProlongation) +330
Sitecore.Web.Authentication.TicketManager.GetTicket(String ticketId, Boolean returnExpired) +93
Sitecore.Web.Authentication.TicketManager.IsTicketValid(String ticketId) +37
Sitecore.Shell.Web.ShellPage.IsLoggedIn(Boolean returnAfterLogin) +409
Sitecore.Shell.Web.UI.SecurePage.OnLoad(EventArgs e) +22
System.Web.UI.Control.LoadRecursive() +68
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4498
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1073.0
I was able to fixed the issue. I reinstalled the update package of WFFM 8.1. But prior to that, I copy and pasted the DLLs and configuration files of WFFM 8.1-Initial release to my instance before undergoing under run of update.
Edited: Root cause, forgot to update the Sitecore.Forms.config with the patch below:
<handler type="Sitecore.Form.Core.WffmActionHandler, Sitecore.Forms.Core" method="OnWffmActionEventFired" >
<param name="actionManager" ref="/sitecore/wffm/wffmActionExecutor" /> </handler>
In my case i had fixed by copying entire DLL from clean-sitecore installation folder, When more dig on it who is black sheep is below they are
Sitecore.Forms.Core.dll
Sitecore.Forms.Custom.dll
Sitecore.Forms.Mvc.dll
Above dll's version differed.

Getting error on Content Editor after upgrading to Sitecore 8

I have done an upgrade from Sitecore 7.5 to Sitecore 8, And I am getting an error when trying to Access the Content Editor.
Server Error in '/' Application.
Value cannot be null.
Parameter name: fieldNameTranslator
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.ArgumentNullException: Value cannot be null.
Parameter name: fieldNameTranslator
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.
[ArgumentNullException: Value cannot be null.
Parameter name: fieldNameTranslator]
Sitecore.ContentSearch.Linq.Solr.SolrIndexParameters..ctor(IIndexValueFormatter >valueFormatter, IFieldQueryTranslatorMap`1 fieldQueryTranslators, >FieldNameTranslator fieldNameTranslator, IExecutionContext[] executionContexts, >IFieldMapReaders fieldMap, Boolean convertQueryDatesToUtc) +310
Sitecore.ContentSearch.SolrProvider.LinqToSolrIndex`1..ctor(SolrSearchContext >context, IExecutionContext[] executionContexts) +192
Sitecore.ContentSearch.SolrProvider.SolrSearchContext.GetQueryable(IExecutionCo>ntext[] executionContexts) +83
Sitecore.ContentTesting.ContentSearch.TestingSearch.GetRunningTests() +637
Sitecore.ContentTesting.Data.SitecoreContentTestStore.GetActiveTests(DataUri >hostItemDataUri, String searchText) +252
Sitecore.ContentTesting.Pipelines.GetContentEditorWarnings.GetContentTestingWar>nings.Process(GetContentEditorWarningsArgs args) +247
(Object , Object[] ) +141
Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +365
Sitecore.Shell.Applications.ContentManager.Editor.GetWarnings(Boolean >hasSections) +271
Sitecore.Shell.Applications.ContentManager.Editor.Render(RenderContentEditorArg>s args, Control parent) +178
Sitecore.Shell.Applications.ContentManager.ContentEditorForm.RenderEditor(Item >item, Item root, Control parent, Boolean showEditor) +231
Sitecore.Shell.Applications.ContentManager.ContentEditorForm.UpdateEditor(Item >folder, Item root, Boolean showEditor) +374
Sitecore.Shell.Applications.ContentManager.ContentEditorForm.Update() +411
Sitecore.Shell.Applications.ContentManager.ContentEditorForm.OnPreRendered(Even>tArgs e) +212
This is assuming that you already disabled all the Lucene configuration under your App_Config > Include folder and read the Sitecore Search Scaling Guide chapter 3, if not yet, please do so.
Now, the problem relies on your Global.asax, replace the:
Inherits="Sitecore.Web.Application"
To:
Inherits="Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.WindsorApplication"
This is assuming again that your dependency injection is the CastleWindsor and all the essential DLLs for CastleWindors were deployed in your web instance (Website > bin folder)
These are:
SolrNet.dll
Microsoft.Practices.ServiceLocation.dll
Castle.Facilities.SolrNetIntegration.dll
Sitecore.ContentSearch.SolrProvider.CastleWindsorIntegration.dll
Alternatively, there are other four (4) DI framework you can check if CastleWindor is not the dependency injection of your project, and the descriptive details of these DI can be found in the Sitecore Search Scaling Guide.
Once the verification and setup is completed, reload your Sitecore instance and it should load properly. Cheers!
Edited: You may also want to check the SOLR support package DLL version against your current instance version. I experienced the issue several times this week and the root cause always boils down to DLL version discrepancies.
There is something we needed to do with this. Have you changed from Lucene to Solr. It's was in the Solr.config we needed to change some values, although I thought this bug had been fixed. Take a look at
http://blog.horizontalintegration.com/2015/01/21/sitecore-8-solr-configuration-and-setup/
https://born4joy.wordpress.com/2015/09/03/installation-and-configuration-of-solr-for-sitecore-8/