Project Server 2010: Permission problem when accepting New Task requests

This probably isn’t a very common scenario – but you may run in to it.  In My Tasks a resource has the ability to request a new task on any of the projects they are working on (Insert Row, Create a New Task).  This request goes to the project owner (as there isn’t the concept of a status manager for a task that doesn’t yet exists.  However, if before it gets accepted the project owner changes we get into a strange condition.  If the new project owner goes to one of these new task requests in their Approval Center – and clicks on the name of the new task to see the details then they will see this error – You do not have sufficient permissions to view the specified page. Please contact your administrator for permissions to view this page:


It will also throw some stuff in the ULS logs – I have added that at the end of this posting for the search engines to read – you can skip it if you want.

The problem comes about because of a difference between the criteria used to offer updates for approval and those checked for permission to see the details.  The Approval Center is populated based on the ‘owner’ of the requested update (the new project owner) and when they click to see details the permissions check still sees the old project owner as the approver.  So I’d say the bug is that we do not update the approver for outstanding requests when we change the project owner.  Not sure when we will get this fixed but there are some simple workarounds:.

  • Just accept or reject without seeing the detail (Probably not the best idea)
  • Accept, and then review the detail by clicking into the History tab – and at this stage you will pass the security check.  The new task at this point is unpublished, so if you are not happy with it then you can revert the change by deleting from the plan and re-publishing.  (My favorite)
  • Make the original PM the owner again and they will be able to see the detail and accept the update. (could be difficult if they are gone – but you could use a dummy account)

This only affects New Task requests as far as I can tell – normal task updates are not affected.

And now for the boring stuff:

ULS logs will show:

EventID: 2q1K

Level: Exception

Message: System.Web.Services.Protocols.SoapException: ProjectServerError(s) LastError=GeneralSecurityAccessDenied Instructions: Pass this into PSClientError constructore to access all error information at Microsoft.Office.Project.Server.WebServiceProxy.Statusing.ReadAssignmentHistory(Guid itemid, AssnHistoryItemType itemtype)    at Microsoft.Office.Project.PWA.CommonControls.AssnHistory.OnPreRender(EventArgs e) 


Level: Unexpected

Message: Microsoft.SharePoint.SPException: You do not have sufficient permissions to view the specified page. Please contact your administrator for permissions to view this page.  
at Microsoft.Office.Project.PWA.PJUtility.HandlePageError()   
at Microsoft.Office.Project.PWA.PJDlgPage.OnError(EventArgs e)   
at System.Web.UI.Page.HandleError(Exception e)   
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)   
at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)   
at System.Web.UI.Page.ProcessRequest()   
at System.Web.UI.Page.ProcessRequest(HttpContext context)   
at ASP._layouts_pwa_statusing_taskdetailsdialog_aspx.ProcessRequest(HttpContext context) in c:WindowsMicrosoft.NETFramework64v2.0.50727Temporary ASP.NET Filesrootd0bde918866ac2acApp_Web_taskdetailsdialog.aspx.4e58013c.brzjlbjz.0.cs:line 0   
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()   
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)