As stated in the SO answer, the real issue is that without enabling the **Sitecore.Speak.MVC.config**, there's no route pattern matching just `{controller}/{action}`. The answer that will solve your problem is that you need to enable a config on the Content Delivery Servers that enable this route. There are a couple ways you can do this: ### Option 1: Enable Sitecore.Speak.MVC.config Let's take look at what this config is doing: <!-- language: lang-xml --> <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <pipelines> <initialize> <processor type="Sitecore.Mvc.Pipelines.Initialize.InitializeCommandRoute, Sitecore.Speak.Client" patch:before="processor[@type='Sitecore.Mvc.Pipelines.Loader.InitializeRoutes, Sitecore.Mvc']"/> </initialize> <mvc.renderPlaceholder> <processor type="Sitecore.Mvc.Pipelines.Response.RenderPlaceholder.RenderAddedContent, Sitecore.Speak.Client"/> </mvc.renderPlaceholder> </pipelines> <mvc> <precompilation> <assemblies> <assemblyIdentity name="Sitecore.Speak.Web" /> </assemblies> </precompilation> </mvc> </sitecore> </configuration> This config is doing three things: - Initializing the Command Route (which is really the piece you need) - Adding a `<renderPlaceholder>` processor that renders added content. - Adds the Sitecore.Speak.Web assembly to the list of precompiled assemblies. So, in a nutshell, there isn't much here that will harm a CD if this config is enabled, but the last two points aren't needed by the Content Delivery server. ### Option 2: Enable Command Route Manually You can create a patch config that patches in the **InitializeCommandRoute** processor above to the `<initialize>` pipeline. If this patch config exists on the CM, where this processor is already defined, it won't conflict. <!-- language: lang-xml --> <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <pipelines> <initialize> <processor type="Sitecore.Mvc.Pipelines.Initialize.InitializeCommandRoute, Sitecore.Speak.Client" patch:before="processor[@type='Sitecore.Mvc.Pipelines.Loader.InitializeRoutes, Sitecore.Mvc']"/> </initialize> </pipelines> </sitecore> </configuration>