Project Server: Troubleshooting Unknown Error when opening Approval Center
Do not adjust your browser. The unknown error message below is what you may see when accessing the Approval Center page.
<picture missing>
Issue
If you have seen this before, then you know the feeling. It’s a general emptiness that you have because there are no traces for determining what caused it and yet you must solve this. When looking in the ULS logs there is nothing. This is because the error is coming from the browser and not the project server. The browser is expecting something and it was NULL. This is my most feared error message.
I originally used the “Developer Dashboard” to troubleshoot this message. I actually felt I got pretty far with my analysis. It failed on a store procedure called MSP_WEB_SP_QRY_Status_ReadTimePhasedDataForAssignments. The problem was that one or more AssnUID were invalid. I learned later that in this case a timesheet was referring to a project that no longer existed.
The fix to the problem is relatively simple.
Troubleshooting steps
- Run the SQL query below
- If the query returns enough information to determine
- Which resource that submitted the bad timesheet
- Which project and task is missing
- The resource listed then needs to do the following
- Recall timesheet
- Delete timesheet
- Create the timesheet
- Re-submit the timesheet
SQL Script
USE ProjectWebApp
SELECT
TSL.TS_UID Affected_TimeSheetID,
TS.TS_NAME TimeSheet_Name,
TSL.TS_LINE_CACHED_PROJ_NAME Deleted_Proj_Name,
RES.RES_NAME ResourceNamne,
TP.WPRD_START_DATE TimesheetStart,
TP.WPRD_FINISH_DATE TimesheetFinish
FROM
PUB.MSP_TIMESHEET_LINES TSL -- Timesheet Lines
Full OUTER JOIN PUB.MSP_PROJECTS P ON P.PROJ_UID=TSL.PROJ_UID -- Projects
Full OUTER JOIN PUB.MSP_TIMESHEETS TS ON TS.TS_UID=TSL.TS_UID -- Timesheets
Full OUTER JOIN PUB.MSP_RESOURCES RES ON TS.RES_UID=RES.RES_UID -- Resources
Full OUTER JOIN PUB.MSP_WEB_TIME_PERIODS TP ON TP.WPRD_UID=TS.WPRD_UID -- Timesheet Periods
WHERE
TSL.TS_Line_validation_Type = 1 -- 0 is Administrative Task, 1 is Project Task
AND P.PROJ_NAME is null -- Check for Deleted Projects
AND TS.TS_STATUS_ENUM IN (1,2) -- Check for Submitted Timesheets
GROUP BY
TSL.TS_UID
, TS.TS_NAME
, TSL.TS_LINE_CACHED_PROJ_NAME
, RES.RES_NAME
, TP.WPRD_START_DATE
, TP.WPRD_FINISH_DATE