Project Server 2010: An unknown error in Project Center, usually related to filters and duplicate custom field values


The fix for this frequently hit bug was released KB 2598251, and now the KB article at http://support.microsoft.com/kb/2598251 has been updated to include the SQL scripts that will clean up the duplicate values that lead to the error.  These scripts will correct the data, and the fix will stop the condition returning.  The fix itself has a version number of 14.0.6117.5002 – and if you load the February CU rollup package with this same version number then you will also get the fix.  The single Project Server package has been updated to point to the 2598251 patch – as this includes the fix, but also includes the February cumulative update.

So to summarize:

And finally – to help the search engines find this posting, the ULS logs will indicate an exception error similar to the following:

Exception occurred in method Microsoft.Office.Project.Server.BusinessLayer.Project.ProjectGetProjectCenterProjectsForGridJson Microsoft.Office.Project.Server.DataAccessLayer.FilterDal+FilterException: Error during filter query execution. Query: declare @ResUid UniqueIdentifier; set @ResUid = ff02387a-234e-4323-9e33-dbbf6f11880e; declare @PermUid UniqueIdentifier; set @PermUid = a120a079-75bc-4f0f-b376-3fb0ae9ac940; declare @ViewUid UniqueIdentifier; set @ViewUid = 63d3499e-df27-401c-af58-ebb9607beae8; declare @P0 UniqueIdentifier; set @P0 = 2d9ba6f2-d3d4-47f1-8661-5af3d695f8ed; declare @P1 UniqueIdentifier; set @P1 = 0ad53bb6-15ee-476a-ab05-7bb434b50466; SET NOCOUNT ON SELECT T.PROJ_UID INTO #T0 FROM dbo.MSP_PROJECTS AS P INNER JOIN dbo.MSP_TASKS AS T ON T.PROJ_UID = P.PROJ_UID INNER JOIN dbo.MSP_RESOURCES AS R ON R.RES_UID = P.WRES_UID LEFT JOIN dbo.MSP_WORKFLOW_STATUS AS WFSTS ON WFSTS.PROJ_UID = P.PROJ_UID INNER JOIN dbo.MSP_WEB_FN_SEC_GetAllProjectsResCanViewByViewID(@ResUid, @PermUid, @ViewUid, 3) AS perm ON perm.PROJ_UID = T.PROJ_UID LEFT JOIN dbo.ProjectSummaryCustomFields AS TABLEALIAS_0 ON TABLEALIAS_0.PROJ_UID = P.PROJ_UID AND TABLEALIAS_0.MD_PROP_UID = @P0 WHERE T.TASK_OPTINDX = 1.0 AND (ISNULL(WFSTS.STAGE_STATUS,-1) IN (-1, 1,2,3,5,6)) AND ((TABLEALIAS_0.CODE_VALUE <> @P1) OR (TABLEALIAS_0.CODE_VALUE IS NULL)) CREATE CLUSTERED INDEX PK_#T0 ON #T0 (PROJ_UID) SET NOCOUNT OFF SELECT T.PROJ_UID , P.PROJ_NAME , T.TASK_START_DATE , T.TASK_FINISH_DATE , T.TASK_PCT_COMP , T.TASK_WORK , T.TASK_DUR , R.RES_NAME , P.WPROJ_LAST_PUB , P.PROJ_OPT_MINUTES_PER_DAY , P.PROJ_OPT_MINUTES_PER_WEEK , P.PROJ_OPT_DAYS_PER_MONTH , T.TASK_SUMMARY_PROGRESS_DATE , T.TASK_IS_MILESTONE , dbo.MSP_FN_HYPERLINK_HREF(T.TASK_HYPERLINK_ADDRESS, T.TASK_HYPERLINK_SUB_ADDRESS) AS TASK_HYPERLINK_HREF , T.TASK_OUTLINE_LEVEL , P.PROJ_TYPE , T.TASK_DUR_FMT , P.WSTS_SERVER_UID , P.PROJ_OPT_CURRENCY_CODE , P.PROJ_ACTIVE_RISK_COUNT , P.PROJ_ACTIVE_ISSUE_COUNT , P.PROJ_TOTAL_DOC_COUNT , WOB.WOBJ_ISSUE_REF_CNT , WOB.WOBJ_RISK_REF_CNT , WOB.WOBJ_DOC_REF_CNT , PJSYNC.SYNC_WSS_LIST_UID , T.TASK_COMPLETE_THROUGH , (CASE WHEN T.TASK_UID=T.TASK_PARENT_UID THEN 1 ELSE 0 END) AS TASK_IS_PROJECT_SUMMARY FROM dbo.MSP_PROJECTS AS P INNER JOIN dbo.MSP_TASKS AS T ON T.PROJ_UID = P.PROJ_UID INNER JOIN dbo.MSP_RESOURCES AS R ON R.RES_UID = P.WRES_UID LEFT JOIN dbo.MSP_WORKFLOW_STATUS AS WFSTS ON WFSTS.PROJ_UID = P.PROJ_UID INNER JOIN #T0 AS keys ON keys.PROJ_UID = P.PROJ_UID LEFT JOIN (SELECT WOBJ_PROJ_UID as PROJ_UID,[4] as WOBJ_ISSUE_REF_CNT, [5] as WOBJ_RISK_REF_CNT, [3] as WOBJ_DOC_REF_CNT FROM ( SELECT WOBJ_TYPE, WOBJ_PROJ_UID FROM MSP_WEB_OBJECTS WHERE WOBJ_TASK_UID='00000000-0000-0000-0000-000000000000') pwob PIVOT (COUNT(WOBJ_TYPE) FOR WOBJ_TYPE in([3] ,[4],[5])) AS pvt) AS WOB ON WOB.PROJ_UID = P.PROJ_UID LEFT JOIN dbo.MSP_SYNC_PROJECT_SETTINGS AS PJSYNC ON PJSYNC.PROJ_UID = P.PROJ_UID WHERE T.TASK_OPTINDX = 1.0 AND (ISNULL(WFSTS.STAGE_STATUS,-1) IN (-1, 1,2,3,5,6)) DROP TABLE #T0; --->

System.Data.ConstraintException: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

at System.Data.DataSet.EnableConstraints()
at System.Data.DataSet.set_EnforceConstraints(Boolean value)
at Microsoft.Office.Project.Server.DataAccessLayer.DAL.SubDal.FillTypedDataSet(Boolean allowCache, DataSet typedDataSet, String[] tables, SqlCommand sqlCommand, Boolean enforceConstraints)
at Microsoft.Office.Project.Server.DataAccessLayer.DAL.SubDal.FillTypedDataSet(DataSet typedDataSet, String[] tables, SqlCommand sqlCommand, Boolean enforceConstraints)
at Microsoft.Office.Project.Server.DataAccessLayer.FilterDal.FillDataSet(QueryState queryState)
--- End of inner exception stack trace ---
at Microsoft.Office.Project.Server.DataAccessLayer.FilterDal.FillDataSet(QueryState queryState)
at Microsoft.Office.Project.Server.Utility.FilterDalQueryInfo.Query()
at Microsoft.Office.Project.Server.BusinessLayer.Project.ProjectQueryInfo.Query()
at Microsoft.Office.Project.Server.BusinessLayer.Project.ProjectCenterQueryInfo.Query()
at Microsoft.Office.Project.Server.Utility.JsGridPopulationManager.InitializeSerializer(TableQueryInfo tableInfo, OrderInfo orderInfo, SliceInfo sliceInfo, Guid groupSchemeUid, Nullable`1 ganttSchemeUid, Boolean serializeStyles, Func`1 getChanges, Boolean serializeUnfilteredHierarchy, Boolean serializeLookupTableInfo, Boolean showTimeWithDates, String rowFilter)
at Microsoft.Office.Project.Server.Utility.JsGridPopulationManager.InitializeSerializer(TableQueryInfo tableInfo, ViewPropertyGroup properties, JsGridSerializerArguments gridSerializerArgs, Func`1 getChanges)
at Microsoft.Office.Project.Server.BusinessLayer.Project.GetProjectCenterProjectsForGridJson(JsGridSerializerArguments gridSerializerArgs, Guid viewUid, Int32 store, Boolean showInsertedProjects, Boolean clearPersistedProperties)
at Microsoft.Office.Project.Server.Wcf.Implementation.PWAImpl.ProjectGetProjectCenterProjectsForGridJson(JsGridSerializerArguments gridSerializerArgs, Guid viewUid, Int32 store, Boolean showInsertedProjects, Boolean clearPersistedProperties)


Comments (29)

  1. josep says:

    Hi Brian,

    the hotfix explanation says that you don't have to restart the servers but it doesn't say anything about running the wizard to upgrade the databases. Is it necessary?

    thanks

  2. Yes Josep, it is always necessary to run the Wizard – it doesn't just update the databases – also worth reminding people that all SharePoint and Project Server hotfixes are cumulative.

    Best regards,

    Brian.

  3. josep says:

    Hi Brian,

    in the description of the hotfix (English version cause the Spanish doesn't say it) appear a set of sql scripts to execute in order to detect if I have the issue.

    After executing the first script, no rows are returned in the select but I can tell that I have the "Unknown Error" issue in the project center.

    Would you apply the hotfix in my case?

    thanks

  4. If the script is not finding the condition then the hotfix will certainly not fix your unknown error Josep.  The fix itself doesn't stop the unknown error anyway – it stops the condition occuring that can lead to it.  The error has other causes beside the duplicate custom field problem – and the ULS logs may give a clue to what is happening in your case.  You may need to open an incident and have one of our engineers help isolate the problem.

    The Cumulative Update also contains other fixes so it may still be worth installing even if it does not address this specific issue – but always best to test in a non-production environment first.

    Best regards,

    Brian.

  5. Hi Brian,

    I copy the error I get in the ULS but summarizing the error is a timeout: System.Data.SqlClient.SqlException: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.  The statement has been terminated.  

    Exception occurred in method Microsoft.Office.Project.Server.BusinessLayer.Project.ProjectGetProjectCenterProjectsForGridJson Microsoft.Office.Project.Server.DataAccessLayer.FilterDal+FilterException: Error during filter query execution.   Query:     declare @ResUid UniqueIdentifier; set @ResUid = f2764395-302c-4631-8f25-3e431ca94514;  declare @PermUid UniqueIdentifier; set @PermUid = a120a079-75bc-4f0f-b376-3fb0ae9ac940;  declare @ViewUid UniqueIdentifier; set @ViewUid = 1449c6dd-5d5d-4975-bbc2-0a0eb8c45633;  declare @P0 UniqueIdentifier; set @P0 = d74730d3-d5d9-4c56-839b-e1cb6dc0cc41;  declare @P1 UniqueIdentifier; set @P1 = 832417bf-8866-419b-a095-5d2a2ae4163c;  declare @P2 UniqueIdentifier; set @P2 = 0dab5f1e-4c03-4258-a193-e40641430ead;  declare @P3 UniqueIdentifier; set @P3 = 832417bf-8866-419b-a095-5d2a2ae4163c;  declare @P4 UniqueIdentifier; set @P4 = 8780fc0a-1c0d-4d82-8cc4-1d0d35bae398;  declare @P5 UniqueIdentifier; set @P5 = 832417bf-8866-419b-a095-5d2a2ae4163c;  declare @P6 UniqueIdentifier; set @P6 = 65328f80-198d-43bf-a60b-f7e17210996d;  declare @P7 UniqueIdentifier; set @P7 = 832417bf-8866-419b-a095-5d2a2ae4163c;  declare @P8 NVarChar; set @P8 = 100;  declare @P9 Int; set @P9 = 5;  declare @P10 UniqueIdentifier; set @P10 = b5c6af32-81af-4fa8-af45-f3941a3729a7;  declare @P11 UniqueIdentifier; set @P11 = 832417bf-8866-419b-a095-5d2a2ae4163c;    SET NOCOUNT ON    SELECT      T.PROJ_UID   INTO #T0   FROM dbo.MSP_PROJECTS AS P      INNER JOIN dbo.MSP_TASKS AS T ON T.PROJ_UID = P.PROJ_UID     INNER JOIN dbo.MSP_RESOURCES AS R ON R.RES_UID = P.WRES_UID     LEFT JOIN dbo.MSP_WORKFLOW_STATUS AS WFSTS ON WFSTS.PROJ_UID = P.PROJ_UID     INNER JOIN dbo.MSP_WEB_FN_SEC_GetAllProjectsResCanViewByViewID(@ResUid, @PermUid, @ViewUid, 3) AS perm ON perm.PROJ_UID = T.PROJ_UID  WHERE T.TASK_OPTINDX = 1.0    AND (ISNULL(WFSTS.STAGE_STATUS,-1) IN (-1, 1,2,3,5,6))   AND  (  (  (  (  ( EXISTS (    SELECT MD_PROP_UID    FROM ProjectSummaryCustomFields    WHERE ProjectSummaryCustomFields.PROJ_UID = P.PROJ_UID      AND ProjectSummaryCustomFields.MD_PROP_UID = @P1      AND ProjectSummaryCustomFields.CODE_VALUE in (@P0)    GROUP BY MD_PROP_UID    HAVING COUNT(*) >= 1  ) OR EXISTS (    SELECT MD_PROP_UID    FROM ProjectSummaryCustomFields    WHERE ProjectSummaryCustomFields.PROJ_UID = P.PROJ_UID      AND ProjectSummaryCustomFields.MD_PROP_UID = @P3      AND ProjectSummaryCustomFields.CODE_VALUE in (@P2)    GROUP BY MD_PROP_UID    HAVING COUNT(*) >= 1  ) )  OR EXISTS (    SELECT MD_PROP_UID    FROM ProjectSummaryCustomFields    WHERE ProjectSummaryCustomFields.PROJ_UID = P.PROJ_UID      AND ProjectSummaryCustomFields.MD_PROP_UID = @P5      AND ProjectSummaryCustomFields.CODE_VALUE in (@P4)    GROUP BY MD_PROP_UID    HAVING COUNT(*) >= 1  ) )  OR EXISTS (    SELECT MD_PROP_UID    FROM ProjectSummaryCustomFields    WHERE ProjectSummaryCustomFields.PROJ_UID = P.PROJ_UID      AND ProjectSummaryCustomFields.MD_PROP_UID = @P7      AND ProjectSummaryCustomFields.CODE_VALUE in (@P6)    GROUP BY MD_PROP_UID    HAVING COUNT(*) >= 1  ) )  AND (T.TASK_PCT_COMP < @P8) )  AND ((P.PROJ_TYPE <> @P9) OR (P.PROJ_TYPE IS NULL)) )   CREATE CLUSTERED INDEX PK_#T0 ON #T0 (PROJ_UID)    SET NOCOUNT OFF    SELECT      T.PROJ_UID ,      P.PROJ_NAME ,      T.TASK_PCT_COMP ,      T.TASK_START_DATE ,      T.TASK_FINISH_DATE ,      P.PROJ_OPT_MINUTES_PER_DAY ,      P.PROJ_OPT_MINUTES_PER_WEEK ,      P.PROJ_OPT_DAYS_PER_MONTH ,      T.TASK_SUMMARY_PROGRESS_DATE ,      T.TASK_IS_MILESTONE ,      dbo.MSP_FN_HYPERLINK_HREF(T.TASK_HYPERLINK_ADDRESS, T.TASK_HYPERLINK_SUB_ADDRESS) AS TASK_HYPERLINK_HREF ,      T.TASK_OUTLINE_LEVEL ,      P.PROJ_TYPE ,      T.TASK_DUR_FMT ,      P.WSTS_SERVER_UID ,      P.PROJ_OPT_CURRENCY_CODE ,      P.PROJ_ACTIVE_RISK_COUNT ,      P.PROJ_ACTIVE_ISSUE_COUNT ,      P.PROJ_TOTAL_DOC_COUNT ,      WOB.WOBJ_ISSUE_REF_CNT ,      WOB.WOBJ_RISK_REF_CNT ,      WOB.WOBJ_DOC_REF_CNT ,      PJSYNC.SYNC_WSS_LIST_UID ,      T.TASK_COMPLETE_THROUGH ,      (CASE WHEN T.TASK_UID=T.TASK_PARENT_UID THEN 1 ELSE 0 END) AS TASK_IS_PROJECT_SUMMARY ,      T.TASK_DUR   FROM dbo.MSP_PROJECTS AS P      INNER JOIN dbo.MSP_TASKS AS T ON T.PROJ_UID = P.PROJ_UID     INNER JOIN dbo.MSP_RESOURCES AS R ON R.RES_UID = P.WRES_UID     LEFT JOIN dbo.MSP_WORKFLOW_STATUS AS WFSTS ON WFSTS.PROJ_UID = P.PROJ_UID     INNER JOIN #T0 AS keys ON keys.PROJ_UID = P.PROJ_UID     LEFT JOIN (SELECT WOBJ_PROJ_UID as PROJ_UID,[4] as WOBJ_ISSUE_REF_CNT, [5] as WOBJ_RISK_REF_CNT, [3] as WOBJ_DOC_REF_CNT               FROM (               SELECT WOBJ_TYPE, WOBJ_PROJ_UID                FROM MSP_WEB_OBJECTS WHERE WOBJ_TASK_UID='00000000-0000-0000-0000-000000000000') pwob              PIVOT (COUNT(WOBJ_TYPE) FOR WOBJ_TYPE in([3] ,[4],[5])) AS pvt) AS WOB ON WOB.PROJ_UID = P.PROJ_UID     LEFT JOIN dbo.MSP_SYNC_PROJECT_SETTINGS AS PJSYNC ON PJSYNC.PROJ_UID = P.PROJ_UID  WHERE T.TASK_OPTINDX = 1.0    AND (ISNULL(WFSTS.STAGE_STATUS,-1) IN (-1, 1,2,3,5,6))      CREATE TABLE #T1 (MD_PROP_UID uniqueidentifier)   INSERT INTO #T1 (MD_PROP_UID) VALUES (@P10)   INSERT INTO #T1 (MD_PROP_UID) VALUES (@P11)   INSERT INTO #T1 (MD_PROP_UID)      SELECT MD_PROP_UID_SECONDARY FROM MSP_CUSTOM_FIELDS WHERE MD_PROP_UID IN (@P10, @P11)   INSERT INTO #T1 (MD_PROP_UID)      SELECT DISTINCT MD_PROP_UID FROM MSP_PROJECT_CUSTOM_FIELDS_WORKING_VIEW WHERE MD_PROP_UID_SECONDARY IN (@P10, @P11)   INSERT INTO #T1 (MD_PROP_UID)      SELECT DISTINCT MD_PROP_UID_SECONDARY FROM MSP_PROJECT_CUSTOM_FIELDS WHERE MD_PROP_UID IN (@P10, @P11)     SELECT      CFV.CUSTOM_FIELD_UID ,      CFV.PROJ_UID ,      CFV.MD_PROP_UID ,      CFV.MD_PROP_ID ,      CF.MD_PROP_NAME ,      CFV.FIELD_TYPE_ENUM ,      CFV.FLAG_VALUE ,      CFV.DUR_VALUE ,      CFV.NUM_VALUE ,      CFV.DUR_FMT ,      CFV.DATE_VALUE ,      CFV.CODE_VALUE ,      CFV.TEXT_VALUE ,      CFV.INDICATOR_VALUE   FROM dbo.MSP_PROJ_CUSTOM_FIELD_VALUES AS CFV      INNER JOIN #T0 AS keys ON keys.PROJ_UID = CFV.PROJ_UID     INNER JOIN dbo.#T1 AS cfkeys ON cfkeys.MD_PROP_UID = CFV.MD_PROP_UID     INNER JOIN dbo.MSP_CUSTOM_FIELDS AS CF ON CF.MD_PROP_UID = CFV.MD_PROP_UID  UNION  SELECT      CFV.CUSTOM_FIELD_UID ,      CFV.PROJ_UID ,      CFV.MD_PROP_UID ,      CFV.MD_PROP_ID ,      PCF.MD_PROP_NAME ,      CFV.FIELD_TYPE_ENUM ,      CFV.FLAG_VALUE ,      CFV.DUR_VALUE ,      CFV.NUM_VALUE ,      CFV.DUR_FMT ,      CFV.DATE_VALUE ,      CFV.CODE_VALUE ,      CFV.TEXT_VALUE ,      CFV.INDICATOR_VALUE   FROM dbo.MSP_TASK_CUSTOM_FIELD_VALUES AS CFV      INNER JOIN dbo.MSP_TASKS AS T ON T.PROJ_UID = CFV.PROJ_UID AND T.TASK_UID = CFV.TASK_UID AND T.TASK_UID = T.TASK_PARENT_UID     INNER JOIN #T0 AS keys ON keys.PROJ_UID = CFV.PROJ_UID     INNER JOIN dbo.#T1 AS cfkeys ON cfkeys.MD_PROP_UID = CFV.MD_PROP_UID     INNER JOIN dbo.MSP_PROJECT_CUSTOM_FIELDS AS PCF ON PCF.MD_PROP_UID = CFV.MD_PROP_UID AND PCF.PROJ_UID = CFV.PROJ_UID    DROP TABLE #T0;  DROP TABLE #T1;     —> System.Data.SqlClient.SqlException: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.  The statement has been terminated.    

    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)    

    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)    

    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)    

    at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()    

    at System.Data.SqlClient.SqlDataReader.get_MetaData()    

    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)    

    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)    

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)    

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)    

    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)    

    at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)    

    at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)    

    at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)    

    at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)    

    at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)    

    at Microsoft.Office.Project.Server.DataAccessLayer.DAL.SubDal.FillTypedDataSet(Boolean allowCache, DataSet typedDataSet, String[] tables, SqlCommand sqlCommand, Boolean enforceConstraints)    

    at Microsoft.Office.Project.Server.DataAccessLayer.DAL.SubDal.FillTypedDataSet(DataSet typedDataSet, String[] tables, SqlCommand sqlCommand, Boolean enforceConstraints)    

    at Microsoft.Office.Project.Server.DataAccessLayer.FilterDal.FillDataSet(QueryState queryState)     –

    — End of inner exception stack trace —    

    at Microsoft.Office.Project.Server.DataAccessLayer.FilterDal.FillDataSet(QueryState queryState)    

    at Microsoft.Office.Project.Server.Utility.FilterDalQueryInfo.Query()    

    at Microsoft.Office.Project.Server.BusinessLayer.Project.ProjectQueryInfo.Query()    

    at Microsoft.Office.Project.Server.BusinessLayer.Project.ProjectCenterQueryInfo.Query()    

    at Microsoft.Office.Project.Server.Utility.JsGridPopulationManager.InitializeSerializer(TableQueryInfo tableInfo, OrderInfo orderInfo, SliceInfo sliceInfo, Guid groupSchemeUid, Nullable`1 ganttSchemeUid, Boolean serializeStyles, Func`1 getChanges, Boolean serializeUnfilteredHierarchy, Boolean serializeLookupTableInfo, Boolean showTimeWithDates, String rowFilter)    

    at Microsoft.Office.Project.Server.Utility.JsGridPopulationManager.InitializeSerializer(TableQueryInfo tableInfo, ViewPropertyGroup properties, JsGridSerializerArguments gridSerializerArgs, Func`1 getChanges)    

    at Microsoft.Office.Project.Server.BusinessLayer.Project.GetProjectCenterProjectsForGridJson(JsGridSerializerArguments gridSerializerArgs, Guid viewUid, Int32 store, Boolean showInsertedProjects, Boolean clearPersistedProperties)    

    at Microsoft.Office.Project.Server.Wcf.Implementation.PWAImpl.ProjectGetProjectCenterProjectsForGridJson(JsGridSerializerArguments gridSerializerArgs, Guid viewUid, Int32 store, Boolean showInsertedProjects, Boolean clearPersistedProperties)

  6. I found a post in your blog talking about Project Server 2007 timeouts… blogs.msdn.com/…/project-server-2007-timeout-settings.aspx

    Would it be useful for me?

  7. Hi Josep, I am never a fan of increasing timeouts to resolve issues.  Fine for testing purposes, but the real soilution is usually to make things work faster as the timeouts are set at values that should not usually be reached.  I'd check DB maintenance plans first.  Perhaps DB statistics are not updated or you have seriously fragmented indexes.

    Best regards,

    Brian

  8. Yana Belavskaya says:

    Please tell me where you take these scripts? I downloaded – there is a standard installation file, I don't see any scripts. Thanks.

  9. Hi Yana,

    I understand that as the scripts were added later to the article, that some of the translated versions, or non-US versions of the KB article are not updated.  You may need to go explicitly to the US page to get to the scripts.  Let me know if this works for you.

    Best regards,

    Brian.

  10. Yana Belavskaya says:

    Уes, happened exactly as you said. Thanks, I found the scripts.

  11. Hi Brian, after checking the maintenance plan for the Project Server DBs and activating the recommended performance enhancements it seems everything goes smoother and I've been able to use the views without getting the timeout

  12. Yana Belavskaya says:

    Hi Brian, I have successfully applied the scripts. But the script worked for all fields except those that are multiple choice. There remains duplication of data. How can I solve this problem?

  13. Hi Yana, yes, we have realised the scripts exclude the multi selection fiedls – but these too can have duplicates.  I understand that editing the field and unselecting the field that has been duplicated, via a PDP, saving and then re-selecting will clear the duplication.  I don't have a script for this.  Do you have many fields in this condition?

    Best regards,

    Brian.

  14. Yana Belavskaya says:

    Hi Brian, for all projects on two of these fields. This procedure doesn't help me clear the duplicates.

    Maybe there is still some way?

  15. I have a set of steps that will always create duplicate values in a custom field lookup table:

    1. Create a custom field lookup of text

    2. Add two records to the lookup consisting of the same two words separated by a single space for the first record and two spaces for the second record

    3. Save the two records. The save will succeed because there are no duplicates

    4. Reopen the lookup, and try to resave it. It will fail, and complain that there are duplicates. This is true.

    The act of saving actually removes the second space in the second record, making the two records duplicates.

    Will the fix handle this situation? I have a workaround of using REPLACE on my select statement before I use the API web service to load thousands of records,

    but I would prefer not having to do so. It seems like a bug to have the Save actually altering the data.

  16. No RBSargent – this fix is not related to that issue.  You steps create a duplicate in the lookup table itself – this issue is with a duplicate pair of values for the selected custom fields within the project.  If the first save worked it sounds like the load is removing the extra whitespace – and not the save.  Certainly not a good idea to have similar records that are only different due to whitespace – but not something I can see any current plans to fix in this area.

    Best regards,

    Brian.

  17. Barak Bester says:

    Hi Brian,

    You mention that the fix is for "unknown error" in Project Center. Is it applicable to "unknown error" in all PWA pages?

    Thanks,

    Barak

  18. Hi Barak, unfortunately the unknown error can have many different causes (some of which are still unknown…) so this fix is just applicable to this one.  Generally a fix will resolve one very specific type of ULS error as that will give more information than just the unknown error that gets surfaced through PWA.  Is there some specific problem you are getting?

    Best regards,

    Brian.

  19. Hi Yana, I have a new script that should work for the multi-value fields.  If you are interested in trying it in a test environment then contact me at brian.smith@microsoft.com.

    Best regards,

    Brian.

  20. Yana says:

    Hi Brian,

    Thanks for the scripts. I  will check how they work only today. For a long time I waiting the test environment for our system.

    Another question: how better to run these scripts? before or after installing the update?

    And which of the two updates are better to install for the fix. Now both stated that they correct this mistake.

    support.microsoft.com/…/2598272 – April

    support.microsoft.com/…/2598251 – February

    Thanks.

  21. Hi Yana – you can run before or after loading the update – porobably best after, as then you can be sure the problem will not return.  The fix was in a hotfix very shortly after the February CU – and this one actually replaced the February CU – but officially the first CU containing the fix was April – so it is in both of the links you mention, as well as the recently released June CU.

    Best regards,

    Brian.

  22. Yana says:

    Brian,Thank you. All scripts have helped to remove duplicate values!

    Maybe you can help me in my sad situation.

    Description:

    I installed updated: support.microsoft.com/…/2596997.

    All errors that described in your article  appeared in my system.

    But we have a third-party  development in the system. And in addition to errors in the standard functional Project, some of the features of third-party development stopped working.

    All functions relate to the lookup table.

    That is, the impression that the system sees all the fields that use a lookup table, empty. But in PWA and the client all the data in place, the database also.

    I'm hoping that installing the February or April update will eliminate all errors. I tried to install both, but only the standard errors disappeared functional. And our functions did not work.

    Can you tell me, what can be the problem? I would be very grateful.

    such error in trace:

    Event 0: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.ServiceModel.FaultException: Unhandled Communication Fault occurred

    Server stack trace:

     at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)

     at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)

     at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)

     at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

    Exception rethrown at [0]:

     at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

     at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

     at FluentPS.WebSvcLookupTable.LookupTable.ReadLookupTablesByUids(Guid[] ltUidList, Boolean autoCheckOut, Int32 language)

     at FluentPS.WebSvcLookupTable.LookupTableClient.ReadLookupTablesByUids(Guid[] ltUidList, Boolean autoCheckOut, Int32 language)

     — End of inner exception stack trace —

     at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)

     at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)

     at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

     at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)

     at FluentPS.Impersonation.WebSvcProxy.Invoke(IMessage msg)

    Tag(g7ls)  System.ServiceModel.FaultException: The server was unable to process the request due to an internal error.  For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.

    Server stack trace:

     at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)

  23. Hi,

    I am encountering the same 'unknown error' when accessing our Project Centre. The weird part is there's only one View that's not being affected by the error (Referenceplan). I found out it's because it has a custom filter. I tried applying the same filter on other views and the error disappeared! Once I removed the filter, the error appears again. What's causing this? I tried running the SQL script as specified in support.microsoft.com/…/2598251 but I got no values so the fix won't work for me.

  24. Hi Terriyaki0212, the unknown error can have many causes – and from your description the filter is removing some data that is the root cause of the error – so with the filter all is good.  Not knowing exactly what your filter is doing I can't give you much more guidance – but examining the filter and seeing what data (plans, tasks or columns) it might be filtering out should help isolate the problem. If you can't track it down then by all means open a support incident and I'm sure we can help.

    One other thought – it could be a time out – and the filter just reduces the returned data and it runs within the timeout limit.  DB maintenance (update stats, rebuild indexes) may help here.

    Best regards,

    Brian.

  25. Thanks for including ULS log. Helped me to find this page.

  26. Vince says:

    We are on April CU 14.0.6120.5006 and getting this problem. Regardless, I tried applying the hotfix and as expected it says it's already applied. Not sure what to do. I tried reprovisioning PWA.

  27. Hi Vince, if you are getting that exact error in the ULS logs then I'd suggest opening a support case so we can help identify why you are still getting it.  If the error in ULS is different then perhaps you have a different problem – we would need the ULS error to be able to help.

    Also note that the June fix stops the problem happening but does not fix the existing condition – see the SQL code that is needed to resolve the issue (and script 1 will also confirm if this really is the issue for you).

    Best regards,

    Brian.

  28. Vincent says:

    We're on April 2012 rerelease and are getting this error. Guess I'll have to call in a case with MS.

  29. Yusep says:

    i have a problem too…

    server setting > enterprise project types

    appears an error an unknown error has occurred

    …please suggestion

Skip to main content