none
Unexpected Error while modifying the navigational structure - SharePoint Server 2010

    Question

  • I am getting the following error when modifying the navigation in one of the SharePoint 2010 site.

    An unexpected error occured while manipulating the navigational structure of this Web.

    I checked the correlation ID in the ULS Logs and found the below message:

    System.Data.SqlClient.SqlException: Cannot insert duplicate key row in object 'dbo.NavNodes' with unique index 'NavNodes_AltPK'. The duplicate key value is (d49a6431-f957-4dd9-8d66-9c4f192994e0, 8cff4792-85b8-4531-a197-3626eb482d4e, 1025, 23).  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.ExecuteReader(CommandBehavior behavior)    

    Is there any way to resolve this issue ?
    Appreciated the help.
    Thanks
    Santhosh

    Tuesday, November 01, 2011 8:47 PM

Answers

  • Hi,

     

    Could you please run the following command instead of "stsadm -o sync -deleteolddatabases 1"?

     

    stsadm -o sync -listolddatabases 0

    stsadm -o sync -deleteolddatabases 0

     

    In addition, please apply the latest hotfix for SharePoint 2010.

     

    Thanks,

    Rock Wang


    Regards, Rock Wang Microsoft Online Community Support
    • Marked as answer by Wayne Fan Friday, November 11, 2011 3:34 AM
    Thursday, November 03, 2011 7:41 AM

All replies

  • it is probably synchronization issue, if it's user profile or managed metadata service database you can try to apply the below plan:

    1. stsadm -o listolddatabases 1

    if any found

    2. stsadm -o sync -deleteolddatabases 1

    It will delete the old links in configuration database that may prevents sharepoint to update db records.

    Check the stsadm -o sync reference here: http://technet.microsoft.com/en-us/library/cc263196(office.12).aspx


    Regards, Stanisław Delost, MCP, MCTS, MCITP @ NETPRIME.
    Check my SharePoint Blog
    Wednesday, November 02, 2011 8:48 AM
  • Thank you

    The stsadm -o listolddatabases 1 returns 

     " No databases match the criteria for this Partition in this User Profile Application" .

    That means all the content databases are in Sync.

     

    Regards,
    Santhosh 

    Wednesday, November 02, 2011 1:31 PM
  • Hi,

     

    Could you please run the following command instead of "stsadm -o sync -deleteolddatabases 1"?

     

    stsadm -o sync -listolddatabases 0

    stsadm -o sync -deleteolddatabases 0

     

    In addition, please apply the latest hotfix for SharePoint 2010.

     

    Thanks,

    Rock Wang


    Regards, Rock Wang Microsoft Online Community Support
    • Marked as answer by Wayne Fan Friday, November 11, 2011 3:34 AM
    Thursday, November 03, 2011 7:41 AM