#1 Global Leader in Data Resilience

"Failed to publish malware detection metadata to the catalog"

KB ID: 4690
Product: Veeam Backup & Replication | 12 | 12.1 | 12.2
Published: 2024-11-21
Last Modified: 2024-11-21
mailbox
Get weekly article updates
By subscribing, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.

Cheers for trusting us with the spot in your mailbox!

Now you’re less likely to miss what’s been brewing in our knowledge base with this weekly digest

error icon

Oops! Something went wrong.

Please, try again later.

Challenge

A backup job's task is completed with the warning:

Failed to publish guest file system index to the catalog
Warning
The warning above appears at the task level (when a machine is selected in the Statistics window).
An additional message will appear in the Statistics window at the job summary level. Right-click on that warning, select Copy to Clipboard, and then paste it into a text document to view the entire warning message.
Copy Job Warning

Example warnings:

  • There is insufficient disk space on the drive where the VBRCatalog is located.
    Failed to commit catalog transaction "D:\VBRCatalog\Publications\Upload\d4e55a93-a17e-4d90-9ca6-19adb0d4c4fc".
    Cannot save changes in meta-file "D:\VBRCatalog\Publications\Upload\d4e55a93-a17e-4d90-9ca6-19adb0d4c4fc\PubCommands.txt".
    Meta-file [D:\VBRCatalog\Publications\Upload\d4e55a93-a17e-4d90-9ca6-19adb0d4c4fc\PubCommands.txt] cannot be rewritten.
    Failed to write [2490] bytes to the file [D:\VBRCatalog\Publications\Upload\d4e55a93-a17e-4d90-9ca6-19adb0d4c4fc\PubCommands.txt].
    Win32 error:There is not enough space on the disk.
     Code: 112  
    
  • The Veeam Guest Catalog Service service is not operating correctly (not listening on port 9393).
    Failed to commit catalog transaction "D:\VBRCatalog\Publications\Upload\2590d916-4e52-4250-bd78-db45102f4eeb".
    Failed to update catalog manager with the data published in the folder "D:\VBRCatalog\Publications\Upload\2590d916-4e52-4250-bd78-db45102f4eeb".
    Proxy [UploadAndMonitoring]: unable to call method. All attempts have failed
    Could not connect to net.tcp://vbr:9393/CatSvcStateMonitorAndUploader. The connection attempt lasted for a time span of 00:00:02.0228742. TCP error code 10061: No connection could be made because the target machine actively refused it 10.10.10.10:9393. 
    No connection could be made because the target machine actively refused it 10.10.10.10:9393  
    
  • The files are locked, likely by security software, such as an antivirus.
    Failed to commit catalog transaction "D:\VBRCatalog\Publications\Upload\c0ce1d37-16b3-4890-b2bf-b1fdc7afc703".
    Failed to update catalog manager with the data published in the folder "D:\VBRCatalog\Publications\Upload\c0ce1d37-16b3-4890-b2bf-b1fdc7afc703".
    Proxy [UploadAndMonitoring]: unable to call method. All attempts have failed
    Cannot create or load meta-file "D:\VBRCatalog\Publications\Upload\c0ce1d37-16b3-4890-b2bf-b1fdc7afc703\PubCommands.txt". Open mode: EMtfLoad
    Win32 error:The process cannot access the file because it is being used by another process.
     Code: 32  
    

Cause

This warning occurs when either the Veeam Guest Catalog Service service is unable to complete the file interaction task or the service is not operating correctly.

Common causes observed from cases:

  • There was insufficient disk space where VBRCatalog was stored.
  • The disk where VBRCatalog is located was failing.
  • The disk where the VBRCatalog is located had a failing iSCSI connection.
  • Security software (antivirus) was locking files within the VBRCatalog.
  • The Veeam Guest Catalog service was not started.
  • The Veeam Guest Catalog was running but was unable to initialize fully...
    • Because one of the configuration XML files it reads as part of the service startup was corrupted by a recent unexpected power loss that caused the Veeam Backup Server to turn off.
    • Because it could not connect to the Configuration Database.

Solution

Review the Job-Level Warning
Read the job-level warning (starts with "Failed to commit catalog transaction"); it will provide a lead for which issue to investigate.

Initial Basic Troubleshooting

  • If possible, reboot the Veeam Backup Server. Many customers have reported that this resolved the issue, likely because it cycled the services and caused any processes locking the files to release.
  • Check if the drive specified in the warning has available free space.
    The files created as part of the malware detection are small (5MB or less); there would have to be nearly zero free space available to cause the issue.

    If space cannot be freed up nor the disk expanded, consider moving the VBRCatalog to a different drive that has sufficient free space.
  • Ensure that AV Exclusions have been configured for the VBRCatalog path.
  • Check if there is a disk level issue by navigating to the folder specified in the warning (e.g., C:\VBRCatalog\Publications\Upload\), and create a folder and a text file inside that folder, then delete them. If any OS-level errors occur (e.g., "The device is not ready"), that prevent those simple actions from being completed, it could indicate an underlying disk issue.
  • Ensure that the Veeam Guest Catalog Service service is 'Running'. If the service is not 'Running', start it.

    If the service cannot be started, create a support case and provide a copy of the service's log file: C:\ProgramData\Veeam\Backup\Svc.VeeamCatalog.log
  • If the Veeam Guest Catalog Service service is 'Running', check if it has fully started and is listening on port 9393.

    Use the following command to confirm that the process Veeam.Backup.CatalogDataService has locked port 9393:
Get-Process -Id (Get-NetTCPConnection -LocalPort 9393).OwningProcess

If the service is running but has not locked port 9393, create a support case for assistance and include the service's log file:
C:\ProgramData\Veeam\Backup\Svc.VeeamCatalog.log

 

Potential Causes for the Service To Fail to Initialize and Lock its Port

The following are based on incidents Veeam Support has assisted with.

  • Configuration XML files loaded by the service are corrupted (GuestIndexAnalyzeState.xml or RansomwareIndexAnalyzeState.xml).
    Run the following PowerShell script on the Veeam Backup Server to validate if the XML files are well formed. If either XML file is not well-formed, delete it and restart the service; the service will recreate the missing XML file.
# Define the registry key path and XML file names
$catalogPath = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Veeam\Veeam Backup Catalog" -Name "CatalogPath").CatalogPath
$xmlFileNames = @("GuestIndexAnalyzeState.xml", "RansomwareIndexAnalyzeState.xml")
# Function to validate XML
function Test-XmlValidity {
param ([string]$FilePath)
try {
(New-Object System.Xml.XmlDocument).Load($FilePath)
Write-Host "Success: '$FilePath' is well-formed."
} catch {
Write-Host "Error: '$FilePath' is not well-formed. $_"
}
}
# Validate each XML file
$xmlFileNames | ForEach-Object { Test-XmlValidity -FilePath (Join-Path $catalogPath $_) }
  • The Veeam Guest Catalog Service cannot access the Veeam Backup & Replication configuration database. 
    This can occur under the following circumstances:
    • Microsoft SQL Server is being used to host the Veeam Backup & Replication configuration database.
    • The 'Veeam Backup Service' service is set to use a specific user for Log on as, and not simply Local System.
    • The 'Veeam Guest Catalog Service' is not using the same Log on as account.

    Run the following PowerShell script on the Veeam Backup Server to see if the situation applies to your deployment:
# Check if Microsoft SQL is hosting the configuration database
if ((Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Veeam\Veeam Backup and Replication\DatabaseConfigurations" -Name "SqlActiveConfiguration" -ErrorAction SilentlyContinue) -eq "MsSql") {
# Define and retrieve service logon accounts
$servicesInfo = @{}
@("VeeamBackupSvc", "VeeamCatalogSvc") | ForEach-Object {
$servicesInfo[$_] = (Get-CimInstance -ClassName Win32_Service -Filter "Name='$_'").StartName
}
# Display and compare the "Log On As" accounts
$servicesInfo.GetEnumerator() | ForEach-Object { Write-Host "$($_.Key) logs on as: $($_.Value)" }
if ($servicesInfo["VeeamBackupSvc"] -eq $servicesInfo["VeeamCatalogSvc"]) {
Write-Host "The services log on with the same account."
} else {
Write-Host "The services log on with different accounts. Please update Veeam Guest Catalog Service to use the same account as the Veeam Backup Server."
}
} else {
Write-Host "Skipping comparison: Deployment uses PostgreSQL."
}

More Information

If the advice in this article does not resolve the issue, please collect logs and create a support case.
To submit feedback regarding this article, please click this link: Send Article Feedback
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.

Spelling error in text

This site is protected by hCaptcha and its Privacy Policy and Terms of Service apply except as noted in our Privacy Policy.
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

Oops! Something went wrong.

Please, try again later.

You have selected too large block!

Please try select less.

KB Feedback/Suggestion

This form is only for KB Feedback/Suggestions, if you need help with the software open a support case

By submitting, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.
This site is protected by hCaptcha and its Privacy Policy and Terms of Service apply except as noted in our Privacy Policy.
Verify your email to continue your product download
We've sent a verification code to:
  • Incorrect verification code. Please try again.
An email with a verification code was just sent to
Didn't receive the code? Click to resend in sec
Didn't receive the code? Click to resend
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

error icon

Oops! Something went wrong.

Please, try again later.