Vault Cache Sync Fails: There are folders in the server new folder root after sync has completed that are not pending server delete

Article: 100023425
Last Published: 2019-04-16
Ratings: 0 1
Product(s): Enterprise Vault

Problem

Vault Cache synchronization fails with the following error in the EV Client trace log

"There are folders in the server new folder root after sync has completed that are not pending server delete"

Error Message

EVClient trace log:

HDR:SYNC:ARC: Synchronization failed (std::exception):There are folders in the server new folder root after sync has completed that are not pending server delete

Note: See Related Articles for instructions on enabling a Client Trace from the Outlook EV Add-in.

Cause

The Archive contains a deleted Parent folder and a dependant Child folder, which contains archived items, has not been deleted.

Within the EVClient Trace log for  'GetArchiveFolderHierarchyResponse', the Archive Folder hierarchy is contained within the XML response.

Example:

<?xml version='1.0' encoding='utf-8'?>
<MDCSyncResponse hr='0' msg='SUCCESS'>
  <GetArchiveFolderHierarchyResponse>
    <Folders>
      <Folder Deleted="0 FolderName="Top of Information Store" VaultEntryId="1702933F…">
        <Folder Deleted="0" FolderName="Outbox" VaultEntryId="1BF9D57D…"/>
        <Folder Deleted="0" FolderName="PST Archives" VaultEntryId="1472085C…">
          <Folder Deleted="1" FolderName="Archive Folders" VaultEntryId="1102D9D2…">
            <Folder Deleted="0" FolderName="Calendar" VaultEntryId="1D88F46C…"/>
          </Folder>
          <Folder Deleted="0" FolderName="Folder1" VaultEntryId="141843C0…"/>

The EnterpriseVaultDirectory database records each folder and the folder structure for each Archive within Enterprise Vault (EV). In the example above,  EV identifes that the "Archive Folders" Parent folder has been deleted, however the dependant Child folder "Calendar" has not been deleted. A Child folder cannot exist without a Parent folder and this discrepancy will cause the Vault Cache synchronization to fail.

Solution

In order to identify this scenario, run the following SQL query using the information from the 'GetArchiveFolderHierarchyResponse' XML gathered from the Client Trace:

USE EnterpriseVaultDirectory
SELECT * from ArchiveFolderViewWithDeletedFolders
WHERE VaultEntryId='VaultEntryIDFromEVClientTraceHere' 
AND FOLDERNAME = 'FolderNameFromEVClientTraceHere'

Note: The above query will return the record for the parent folder which shows the Deleted column to have a value of 1 (True), based on the GetArchiveFolderHierarchyResponse XML.

The following are additional queries which provides further details on the affected Archives within the environment:

1. Run the following to identify all Archives and potential number of affected Child folders across the Enterprise Vault environment:

USE EnterpriseVaultDirectory 
SELECT AV.ArchiveName, AFDF.ArchiveVEID, count(AFDF.VaultEntryID) AS "NumberofChildFolders"
FROM ArchiveFolderViewWithDeletedFolders AFDF
INNER JOIN ArchiveView AV ON AFDF.ArchiveVEID = AV.VaultEntryID 
WHERE AFDF.ParentFolderRootIdentity 
IN(SELECT RootIdentity FROM ArchiveFolderViewWithDeletedFolders where Deleted = '1') 
AND AFDF.Deleted = 0
Group BY AV.ArchiveName, AFDF.ArchiveVEID

2. Once the list of potentially affected Archives are recorded, run the following query for a detailed list for a specific Archive:

USE EnterpriseVaultDirectory
SELECT AV.ArchiveName, AFDF.ArchiveVEID, AFDF.FolderName, AFDF.FolderPath, AFDF.VaultEntryID, AFDF.Deleted
FROM ArchiveFolderViewWithDeletedFolders AFDF
INNER JOIN ArchiveView AV ON AFDF.ArchiveVEID = AV.VaultEntryID 
WHERE AFDF.ParentFolderRootIdentity IN
(SELECT RootIdentity FROM ArchiveFolderViewWithDeletedFolders where deleted IN (1)) 
AND AFDF.RootIdentity IN (SELECT RootIdentity FROM ArchiveFolderViewWithDeletedFolders where deleted IN (1))
AND AV.ArchiveName = '<ArchiveName from step 1>'

NOTES: 
        a. This Query will return both the Parent Folder which is set to be deleted as well as the Child folder(s) of the Parent folder for the specified Archive. 
           *This Query is to identify which deleted Parent folder(s) have non-deleted Child folders. There is the potential that numerous Child folders may be affected by a single Parent folder.
         b. The above queries only report on the Parent and Immediate Child Folder(s) affected. These results do not include any subsequent folders within the FolderPath.

3. Identify the affected Parent folder.

Identifying the above scenario requires a review of the FolderPath entry. The FolderPath entry displays the entire Folder Path for each unique folder in an Archive, by default, as a single ntext string.

Example:

In the above example, "Inbox" is set to be deleted, however "Child1" is dependant on "Inbox" and is not set to be deleted.  This causes a discrepancy when Vault Cache attempts to acquire a Folder Hierarchy of the Archive to be synchronized. The FolderPath can be leveraged to identify the Parent Folder affected and the Child Folder dependancies. 

Note: If the Parent folder AND the related Child folder(s) are set to Delete=1 or if all folders are set to Delete=0, this is expected behavior and may be ignored.

In order to allow Vault Cache to complete the synchronization successfully, the parent folder which is set to be deleted must be reverted to a non-deleted state. This will allow the Folder Hierarchy to be parsed successfully during a Vault Cache synchronization. 

If assistance is required to update/change this value, it is required to open an Enterprise Vault Support case for assistance.

Note: This scenario may be observed in all major and minor supported versions of Enterprise Vault.

 

 

Was this content helpful?