Hi Folks,

Recently I was working on a project and encountered an issue in Experience Editor. While loading the page in Experience Editor, I got an error :A serious error occurred please contact the administrator.

I found following entries in log file

ERROR Error processing command url:/-/speak/request/v1/expeditor/optimization.activeitemtest error:System.InvalidOperationException: Could not retrieve request class for url:/-/speak/request/v1/expeditor/optimization.activeitemtest

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.Process(HttpContext context)

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.ProcessRequest(HttpContext context)

21608 14:53:56 ERROR Error processing command url:/-/speak/request/v1/expeditor/optimization.iscontenttestingenabledrequest error:System.InvalidOperationException: Could not retrieve request class for url:/-/speak/request/v1/expeditor/optimization.iscontenttestingenabledrequest

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.Process(HttpContext context)

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.ProcessRequest(HttpContext context)

17392 14:53:56 ERROR Error processing command url:/-/speak/request/v1/expeditor/experienceeditor.profilecardspanel.canopenprofilecard error:System.InvalidOperationException: Could not retrieve request class for url:/-/speak/request/v1/expeditor/experienceeditor.profilecardspanel.canopenprofilecard

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.Process(HttpContext context)

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.ProcessRequest(HttpContext context)

16604 14:53:56 ERROR Error processing command url:/-/speak/request/v1/expeditor/experienceeditor.item.notifications error:System.InvalidOperationException: Could not retrieve request class for url:/-/speak/request/v1/expeditor/experienceeditor.item.notifications

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.Process(HttpContext context)

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.ProcessRequest(HttpContext context)

15020 14:53:56 ERROR Error processing command url:/-/speak/request/v1/expeditor/experienceeditor.toggleregistrykey.get error:System.InvalidOperationException: Could not retrieve request class for url:/-/speak/request/v1/expeditor/experienceeditor.toggleregistrykey.get

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.Process(HttpContext context)

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.ProcessRequest(HttpContext context)

16588 14:53:56 ERROR Error processing command url:/-/speak/request/v1/expeditor/experienceeditor.lockitem.cantogglelock error:System.InvalidOperationException: Could not retrieve request class for url:/-/speak/request/v1/expeditor/experienceeditor.lockitem.cantogglelock

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.Process(HttpContext context)

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.ProcessRequest(HttpContext context)

17288 14:53:56 ERROR Error processing command url:/-/speak/request/v1/expeditor/experienceeditor.toggleregistrykeys.get error:System.InvalidOperationException: Could not retrieve request class for url:/-/speak/request/v1/expeditor/experienceeditor.toggleregistrykeys.get

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.Process(HttpContext context)

at Sitecore.ExperienceEditor.Speak.Server.RequestHandler.ProcessRequest(HttpContext context)

I was googling about this error and found the following options as solution:

  1. https://community.sitecore.net/developers/f/8/t/4155  but all the configurations are proper for SPEAK UI.
  2. http://stackoverflow.com/questions/37063427/sitecore-upgrade-to-v-8-1-u2-experience-editor-a-serious-error-occurred-plea  but SOLR specific configs are already enabled in my solution.

Then I saw following messages in browser’s console.

It provided me the hint that some request is not properly served while loading page in Experience Editor. Finally I found that the issue is related to URL Rewrite. Some rules are already configured in the web.config file which convert the URLs.

To resolve this issue, we need add a condition for SPEAK. This condition will ignore the SPEAK request form the lower case conversion.

 <rewrite>
 <rules>
 <rule name="LowerCaseRule" stopProcessing="true">
 <match url="[A-Z]" ignoreCase="false" />
 <conditions>
 <add input="{URL}" pattern="^/sitecore" negate="true" />
 <add input="{URL}" pattern="^/temp" negate="true" />
 <add input="{URL}" pattern="^/ScriptResource" negate="true" />
 <add input="{URL}" pattern="^/WebResource" negate="true" />
 <add input="{URL}" pattern="\.axd" negate="true" />
 <add input="{URL}" pattern="\.asmx" negate="true" />
 <add input="{URL}" pattern="\.svc" negate="true" />
 <add input="{URL}" pattern="^/layouts/system" negate="true" />
 <add input="{HTTP_URL}" pattern="\?.*sc_mode" negate="true" />
 <add input="{URL}" pattern="\/-\/speak" negate="true" />
 </conditions>
 <action type="Redirect" url="{ToLower:{URL}}" />
 </rule>
 </rules>
 </rewrite>

 

For More Reference :
https://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/