We are investigating an issue using the Add SharePoint Site option within Project Center, where if you add a hierarchy of sites at the same time then one or more may fail to get imported correctly and it can even make the sites themselves inaccessible.  This can affect both Project Online and also on-premises installations of Project Server 2013.  During my testing I have seen inconsistent results – so this would appear to indicate it is some sort of race condition or affected by the server workload – as it will sometimes work just fine.

The feature I am talking about is the one on the Project Center ribbon that allows you to get visibility of SharePoint Task lists within the Project Center – these are often referred to as visibility projects – or as being in visibility mode.  Just to explain first what should happen when you add these. They will still exist as SharePoint Task lists; the icon in Project Center will be slightly different; when you click on the project name in Project Center then this will take you to the Task List.  You can then elevate them to Enterprise Projects by navigating to Server Settings, Connected SharePoint Sites and choosing the project and clicking Activate.  Clicking the plan in Project Center will then take you to the Schedule web part for editing – rather than the task list.

Back to the issue at hand…  This is the ribbon option I am referring to.

image

And clicking it will bring up a list of SharePoint sites in the site collection that have task lists but are not already connected to Project Server.

image

Here I have selected all of the sites – and the child sites are actually sub-sites of the Parent site.

image

If I click on Close, then the Project Center will refresh and I may see the projects listed.  In this case I see all the projects apparently imported.

image

However, if I look at Connected SharePoint sites I see that Child3 is not linked to its site.  I have also heard situations where this page will not display at all and gives a “Sorry, something went wrong” error.

image

Here is the queue error – CreateWssSite.CreateWssSiteMessage.  ULS logs are at the foot of this posting.

image

In some cases if you return to the Add SharePoint Sites dialog you will see the following:

image

In other cases I have seen the dialog display ok, and show the task lists again for sites that failed to connect – but the Project name has a suffix – like (1) in this dialog.  I’ve seen this on-premises but not Online.

image

Navigating to the sites such as Child3 in my example above will lead to a Server Error 500.

The only good clean up from this condition that we have so far is to delete the projects and sites.  This is fairly straightforward if the dialogs are still working ok – but in some cases you will not be able to get to the Connected SharePoint sites to delete the site – and you cannot navigate to the site to delete from Site Settings – so you will need to either use PowerShell/stsadm (on-premises) or log a support incident so we can assist with the clean-up.       

If you haven’t had any issues with this yet then good – and best approach would be to add just a single site at a time until we find what is happening here.

Here is the ULS log for the search engines to digest and spit out – there are a few other errors – but this looks to be the key one:

11/08/2013 04:40:51.12    Microsoft.Office.Project.Server (0x0940)    0x1C4C    Project Server    Provisioning    8t57    Exception    [QUEUE] CreateWssSiteMessage failed on Project 99060cfa-7248-e311-9403-00155d745a02 Microsoft.SharePoint.SPException: List does not exist.  The page you selected contains a list that does not exist.  It may have been deleted by another user. ---> System.Runtime.InteropServices.COMException: List does not exist.  The page you selected contains a list that does not exist.  It may have been deleted by another user.<nativehr>0x81020026</nativehr><nativestack></nativestack>     at Microsoft.SharePoint.Library.SPRequestInternalClass.ResetSecurityScope(String bstrUrl, UInt32 dwObjectType, String bstrObjUrl, Guid guidDoc, Boolean bUnique, Boolean bCopyRoleAssignments, Boolean bClearSubScopes, Guid& pguidScopeId, Int32& piError)     at Microsoft.SharePoint.Library.SPRequest.ResetSecurityScope(String bstrUrl, UInt32 dwObjectType, String bstrObjUrl, Guid guidDoc, Boolean bUnique, Boolean bCopyRoleAssignments, Boolean bClearSubScopes, Guid& pguidScopeId, Int32& piError)     --- End of inner exception stack trace ---     …