Project 2013: Error: One or more categories of approval could not be loaded RRS feed

  • Question

  • We recently upgraded to 2013 from 2007.  Now some of my Resource mgrs who are also PM's are getting this message on the approval screen:  Error: One or more categories of approval could not be loaded

    I figured out it's the timesheets that are not displaying, but even deleting and resubmitting them does not change the message.  Has anyone else encountered this issue?  It seems to be related to the security, but I haven't figured out which permission is missing.

    Tuesday, January 21, 2014 9:09 PM

All replies

  • It seems to be related to the Single Entry Mode.  If I turn that off the timesheets appear.
    Tuesday, January 21, 2014 9:25 PM
  • I will look in the tasks.aspx view for the resource while delegating and check assignment with a NULL value in the Work field.
    IF any task is a Milestone.
    Removing these resources from milestones, and publishing, resolve the issue.

    Of course we all know that you shouldn't put resources on milestones, but as this is supported by Tasks.aspx and you cannot stop it, the timesheet task population job SHOULD account for this and at least either exclude the assignment or add it in as read only.

    Approach 1:
    identify the Timesheet that was causing the issue by comparing Timesheet Manager's Timesheet Approval History and Submitted Timesheets 
    in Timesheet Lines table in database.

    Then  recalled the timesheet of that perticular user, and the issue was resolved check if somethinf is worng in Timesheet. 
    Submitting again the timesheet did not reproduce the issue.
    Approach 2:
    it seems there is an interference with your time sheet approvals, typical recommendation is to make database read only before backing up DB for upgrade, if that's not been performed, then chances are some of those approvals might have been in progress or some time sheets, can you try deleting timesheets / removing references of approvals if any and then try again

    it is a bug in Project server 2013, Microsoft is working on the issue, Till the time you can use above approach and try to get rid of it.  


    • Edited by Kirteshtiw Wednesday, January 22, 2014 3:55 AM
    Tuesday, January 21, 2014 9:40 PM
  • Hi there,

    This is a currently unfixed known bug with Project Server 2013 at least up until Oct 2013 CU caused when PM's delete tasks/assignments after the task has already been added to a user's timesheet.

    You could turn off single entry to make this go away - but many people actually rely on actuals from timesheets coming through to their projects.

    The other way to fix this (temporarily) is to delete and re-create the affected timesheets.

    When you navigate to the approval center and receive the "Error: One or more categories of approval could not be loaded" message, check the ULS log you will see a message like this:

    Node Consistency Error: Exception loading Assignment. Uid=6c5a411f-1f80-e211-a2cb-001e37e5967d

    Selecting from the database with this Uid will tell you which user's timesheet is corrupt.

    Personally I use a SQL script like this:

    SELECT ts.TimesheetName, tsr.ResourceName, tspe.PeriodName ,tsp.ProjectName, tst.TaskName

      FROM [ProjectServer].[dbo].[MSP_TimesheetLine] tsl

           inner join MSP_Timesheet ts

                  on tsl.TimesheetUID = ts.TimesheetUID

           inner join MSP_TimesheetResource tsr

                  on ts.OwnerResourceNameUID = tsr.ResourceNameUID

           inner join MSP_TimesheetProject tsp

                  on tsl.ProjectNameUID = tsp.ProjectNameUID

           inner join MSP_TimesheetStatus tss

                  on ts.TimesheetStatusID = tss.TimesheetStatusID

           inner join MSP_TimesheetTask tst

                  on tsl.TaskNameUID = tst.TaskNameUID

           inner join MSP_TimesheetPeriod tspe

                  on ts.PeriodUID = tspe.PeriodUID

           inner join [ProjectServer].[pub].[MSP_TIMESHEETS] pubTs

                  on pubTs.TS_UID = ts.TimesheetUID

      where tsl.AssignmentUID = '6c5a411f-1f80-e211-a2cb-001e37e5967d'

                  and pubTs.TS_STATUS_ENUM = 1

    I then create a delegate as that user - go and take a screenshot of the timesheet, delete it, and recreate it.

    Undelegate, go back to the approval center, if the error is still there, then look at the ULS log, rinse and repeat.

    (As you can tell - this is part of my weekly routine)



    James Boman - http://www.boman.biz Software Consultant for IPMO - http://www.ipmo.com.au

    Tuesday, January 21, 2014 10:07 PM