Interchange Runtime .glb Import Crash When Packaged

The runtime import process works fine in editor, but fatal error when trying to do so with packaged build of project.

My function that calls ImportAsset():

`bool UMeshLoader::RequestMeshLoad(FString MeshPath)
{
if (!IsRequestingPart())
{
SetRequestingPart(true);
LastRequestedMeshPath = MeshPath;

FImportAssetParameters EdiagAssetParameters;
EdiagAssetParameters.bIsAutomated = true;
EdiagAssetParameters.OverridePipelines.Add(FSoftObjectPath(UCommonFunctionsLibrary::GetEDiagGameMode(this)->InterchangePipeline->GetPathName()));
EdiagAssetParameters.OnAssetsImportDoneNative.BindUObject(this, &UMeshLoader::MeshLoadingComplete);

UInterchangeManager* EdiagInterchangeManager = UInterchangeManager::GetInterchangeManagerScripted();
UInterchangeSourceData* SourceData = EdiagInterchangeManager->CreateSourceData(MeshPath);

if (!EdiagInterchangeManager->ImportAsset(“/game/ImportedAssets”, SourceData, EdiagAssetParameters))
{
UE_LOG(LogTemp, Error, TEXT(“Interchange ImportAsset Call Returned False For Path: %s”), *MeshPath);
SetRequestingPart(false);
return false;
}
return true;
}
return false;
}`

Steps to Reproduce
With a packaged build of project (works fine in editor), use UInterchangeManager->ImportAsset() to import a .glb (glTF) mesh via C++ code.

Hi Martin,

Looking at your code, I did not see anything which would explain the crash.

A couple of questions to help troubleshooting the crash you are experiencing:

  • Was this code used to run in a packaged build with version prior to 5.3?
  • Have you tried with more recent versions of the editor?

I also opened a bug on our side to investigate this crash: UE-295670. Note that it may take a couple of days for the link to be operational.

Sorry for the current inconvenience.

Regards,

Jean-Luc