The GUID in the project database doesn’t correspond to GUID for this project in the ect.fid


 Product(s):Promis.e, Bentley Substation
 Version(s):V8i through 08.11.13.140
 Environment:SQL Server
 Area:Project Management
 Subarea:Project Manager

Problem Description

The GUID in the project database doesn’t correspond to GUID for this project in the ect.fid file” appears as a tooltip when the mouse pointer is hovered over a project in the folder tree in [[Project Manager]].  The icon for the project folder has a red-circle slash symbol on it, and no project pages are listed.

Reason

Project folders are correlated to the project database by an alphanumeric string, referred to as the "guid".  The message indicates that the guid value found in the ect.fid file does not match the value found in the guid column of the record for the project in the Project table of the project database. Note that for some versions of the software, the guid value in a third location must also match.

Steps to Resolve

"The software" and "the application" in the steps below refer to the Bentley application affected, either Promis.e or Bentley Substation.

Option 1 - Restore the project from backup

If a [[Backup Project|backup]] of the project was recently created, [[Restore Project|restore the backup]] and continue working on the restored project.

Option 2 - Connect to the server hosting the database

It's possible that the data for the project in question is in a different database than is currently being used by the software.

  1. Open the ect.fid file in the affected project's folder using Notepad or other text editor.
  2. Recent versions of the software list the server name on line 4 and the database name on line 8. Note the server name.
  3. Ensure the server name being used on [[Setup]] > Project Database (tab) > Server name matches the server name in the ect.fid file.

Option 3 - Resolve the guid discrepancy

Using SQL Server Management Studio

  1.  If not already installed, install SQL Server Management Studio (SSMS).  If SSMS is installed it should appear in Start > All Programs > Microsoft SQL Server 20xx.  SSMS can usually be [[Install SQL Server Management Studio|downloaded as a standalone item]] or installed from the SQL Server installation file.

  2. Run SSMS.  A Connect to server dialog will appear.  Enter or browse for the server name.  It should appear as it does on the [[Setup]] dialog.

  3. After connecting to the SQL Server, expand the Databases folder in the Object Explorer on the left.

  4. Expand the database used by the software (see the [[Setup]] dialog to determine the proper database).

  5. Expand the Tables folder.

  6. Right click on the dbo.Project table and select Open Table or Select Top 1000 Rows as the case may be.

  7. In the Project table, examine the project names found in the “name” column and see if any of the inaccessible projects are listed.  If you find an inaccessible project listed verify you have the right record (row in the table) by checking the value in the prjpath column for the project.  Do not make any changes to this table.  If you cannot find the inaccessible projects in the Project table, they may be in a different database (see the Connect to the server hosting the database option above) or you may need to change the query to increase the number of rows returned.

  8. If it seems you have found the correct record (row) for an inaccessible project, use Windows File Explorer and go to the path specified in the prjpath field for that row.  If this path is different than the path that Project Manager is focused on, and a project folder exists in both paths, this may explain the problem.  Project folders should not be copied using Windows Explorer, only moved.  The solution may be to delete the non-working folder and point Project Manager to the working folder.  If the path specified in prjpath matches the path to the problem project in Project Manager, continue with the following steps.

  9. Make a backup copy of the ect.fid file found in the project's folder.

  10. Open the ect.fid file in a text editor such as Notepad.  The first line in that file should match the value in the id column for the project in the Project table as seen in SSMS. 

  11. The seventh line in the ect.fid file should match the value in the "guid" column for the project's record in the database, but it probably will not, which is why the project is inaccessible.  If it does not match, copy the guid value from the Project table for that project and paste it into the ect.fid file, overwriting the seventh line.

  12. Save the ect.fid file.

  13. Restart the Bentley application.  The project should now be accessible.

  14. If the project becomes accessible, repeat steps 7 – 12 for the remaining inaccessible projects.

Using a report template

This method may be a more suitable alternative to using SSMS for users that do not have SQL experience.

  1. Open [[Report Template Designer]].
  2. In Report Template Designer, select File > New.
  3. On the New Report Template dialog, select the Customized By SQL Statement option.
  4. Paste the following into the pane on the New Report Template dialog, then click OK:
    select name,guid,prjpath,date_create from project
  5. Adjust the columns on the template in the Designer view so the data is readable on the Preview tab.
  6. Preview the report in Report Template Designer or save the template and view it using [[Run Reports]].
  7. Continue with the Using SQL Server Management Studio process above starting on step 7.

A Note on ProjectWise Integration

This section applies to V8i SELECTseries 7 (08.11.12) version, and possibly earlier versions, only.

When Promis.e and Bentley Substation projects are stored in a ProjectWise datasource, the guid value is also stored in a third location.  In that case, the guid values in three locations must match or else the project is inaccessible:

The guid values may become mismatched when the user first accessing the project after an upgrade does not have permissions to change ProjectWise project attributes.

The ect_fid ProjectWise project property for the project as seen in ProjectWise Explorer is shown below. The guid value is circled in red.

With the 08.11.12 versions of Promis.e and Bentley Substation, the guid value in all three locations must match or else the project will be inaccessible. Beginning in V8i SELECTseries 8 (08.11.13), dependence on matching the guid to the value stored in the ProjectWise project property was removed.

Steps to Resolve with 08.11.12 and ProjectWise Integration

These steps would be performed for each project with the guid mismatch problem.

  1. In ProjectWise Explorer, select the project folder. Go to the Project Properties tab and note the guid value in the ect_fid property. The guid value is embedded in a longer string. Refer to the above screen shot to help determine which text is the guid value.
  2. Open the ect.fid file using Notepad. This file is found in the project's folder. Note the guid value on the seventh line.
  3. Change the guid on the seventh line to match the guid value noted in step 1.
  4. Note the value on the first line. This is the project id value.
  5. Save and check-in the ect.fid file.
  6. Request a DBA to modify the value in the guid column for this project in the Project table so that it matches the value noted in step 1. The project_id value of the correct row to modify should match the value noted in step 3. This can be done using SQL Server Management Studio. Alternatively, an UPDATE statement can be executed to change the guid value. An example statement would be:

    UPDATE Project SET guid = 'step1' WHERE guid = 'step2'


    Replace the text step1 with the guid value from the ect_fid ProjectWise project property noted in step 1 and replace the text step2 with the guid value from the ect.fid file noted in step 2.

See Also

[[Anatomy of the ect.fid file]]

 Original Author:Matt_P

keywords: inaccessible, no pages, no drawings, red circle-slash