We have recently encountered very strange issue when we have tried to create a new SXA Site under Tenant which already contained other Sites.
Problem definition
You are creating new Site by right clicking on Tenant and from insert options you choose “Site”:
Instead of expected wizard where you are setting site name, choosing modules to install, grid settings and others, we saw this:
or textually “Something went wrong. See SPE logs for more details”.
We went then to SPE log and saw these log entries:
11144 14:33:25 INFO Executing PsSitecoreItemProvider5.Start(providerInfo='Sitecore')
10148 14:33:26 INFO Script item set to master:\system\Modules\PowerShell\Script Library\SXA\SXA - Scaffolding\Content Editor\Insert Item\Site in ScriptSession $scriptSession$|bknc1r0bpwhy41rvkn1kf1cx|8d21d358-0513-4fe4-b708-b5340a2eb9a6.
ManagedPoolThread #9 14:33:26 INFO Executing a script in ScriptSession '$scriptSession$|bknc1r0bpwhy41rvkn1kf1cx|8d21d358-0513-4fe4-b708-b5340a2eb9a6'.
ManagedPoolThread #9 14:33:35 ERROR Cannot convert value "" to type "Sitecore.Data.ID". Error: "Empty strings are not allowed.
Parameter name: value"
ManagedPoolThread #9 14:33:35 INFO The script execution in ScriptSession '$scriptSession$|bknc1r0bpwhy41rvkn1kf1cx|8d21d358-0513-4fe4-b708-b5340a2eb9a6' completed in 8940 ms.
The most important log entry from this list is this one:
ManagedPoolThread #9 14:33:35 ERROR Cannot convert value "" to type "Sitecore.Data.ID". Error: "Empty strings are not allowed.
Parameter name: value"
Solution
To find the solution, we first had to find root cause of above error.
It was actually pretty easy at the end.
First step was to analyze the script itself mentioned in log entries:
master:\system\Modules\PowerShell\Script Library\SXA\SXA - Scaffolding\Content Editor\Insert Item\Site
This is the most important content of that script for further analysis:
This led my colleague Akos to check New-Site
function located under path “/sitecore/system/Modules/PowerShell/Script Library/SXA/SXA – Scaffolding/Functions/Scaffolding/Site/New-Site”.
From this script, Get-ValidSiteSetupDefinition
function is called under path “/sitecore/system/Modules/PowerShell/Script Library/SXA/SXA – Scaffolding/Functions/Scaffolding/Site/Get-ValidSiteSetupDefinition”
Last script which is called here was function Get-InvokedTenantAction
located here “/sitecore/system/Modules/PowerShell/Script Library/SXA/SXA – Scaffolding/Functions/Cmdlets/Get-InvokedTenantAction”.
Script actually fails on line 57 where it is trying to get Insert Options which as you know are stored in field __Masters
.
This is the code that caused trouble:
[Sitecore.Data.ID[]]$baseTemplates = $standardValuesHolder."__Masters".Split('|')
As we have found out, Insert options (therefore __Masters field) was empty on Standard values of Page template and therefore the script failed:
We have then set them to Page
:
And all started to work again and we saw much anticipated wizard with all bits and pieces to set:
This problem was registered as bug as mentioned by Gert Gullentops on Sitecore StackExchange -> https://sitecore.stackexchange.com/a/18856/2056 but above you have quick fix that you can apply now without contacting Sitecore Support 🙂
Cheers