Launching multiple Editor processes in UE 5.5 can throw warnings due to USD Core plugin initialization

Launching multiple Editor processes at the same time with the USD Core plugin enabled can cause warnings to be logged like the following:

LogUsd: Warning: Failed to update LibraryPath for USD plugInfo.json file '<WorkspaceDir>/Engine/Binaries/ThirdParty/USD/UsdResources/Win64/plugins/hdSt/resources/plugInfo.json'This is seemingly because FUnrealUSDWrapperModule::StartupModule calls IUsdClassesModule::UpdatePlugInfoFiles, which then tries to get an exclusive write lock on various plugin info files. When multiple processes start at the same time, this can cause the above warning, as one of the other processes can already have locked the file and thus cause the operation to fail.

When this happens, we’re running commandlets that don’t (intentionally) rely on this USD plugin, so this seems like a generic initialization routine. We run command-lines like the following for various different commandlets in parallel:

UnrealEditor.exe "Path\To\My\Project.uproject" -Log -Unattended -NoPause -NoSound -BuildMachine -MultiProcess -Run=MyCommandletI would hope that, in particular, the -MultiProcess argument would ensure that this issue would not happen.

We’ve also seen logs of the form:

LogUsd: Error: TF_DIAGNOSTIC_CODING_ERROR_TYPE: Could not find plugin for package resolver Usd_UsdzResolverThis happened immediately after all of the LibraryPaths for USD plugInfo.json calls completed - and for this process, they were all successful.

Is there anything we can do in the immediate term to fix this issue, please? Is this something that could be looked at and made safe for a future release?

Steps to Reproduce

Hi Elliot,

I opened a ticket to track the resolution of your issue: UE-273990. It may take some time before the link becomes valid.

Note that the developer in charge of USD is currently on vacations. They will come back beginning of May.

Thanks for your patience.

Regards,

Jean-Luc

Hi Elliot,

Could you try to run your first process with the -MultiprocessId=0, the subsequent ones with MultiprocessId=1?

Thanks.

Regards,

Jean-Luc

Hi Jean-Luc,

Thanks very much for this suggestion - looking at the engine code, this seems like it should solve the problem. I’ve modified our script to do as you suggested, I’ll report back if we see any further failures.