USDCore's GetMetadata crashes due to destructor

Hello,
I’m trying to get the metadata “apiSchemas” (I don’t use getAppliedSchemas because that does not include my custom schemas) but when the destructor of ItemVector (std::vector<pxr::UsdPrim>) returned by SchemasListOp.GetAppliedItems() is called, the engine (most of the time) crashes.

I’m new to this and would appreciate any help, thank you!

The error:

Exception thrown at 0x00007FFBF29D961E (UnrealEditor-Core.dll) in UnrealEditor.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.

The code:

    TArray<FString> GetPrimAPISchemas(const UE::FUsdPrim &Prim)
    {
        if (!Prim || !Prim.IsValid()) return {};

        TArray<FString> SchemaTokensVec;
        UE::FVtValue SchemasValue;
        if (!Prim.GetMetadata(TEXT("apiSchemas"), SchemasValue)) return {};

        FScopedUsdAllocs Allocs;
        {
            const auto &SchemasUsdValue = SchemasValue.GetUsdValue();

            if (!SchemasUsdValue.IsHolding<pxr::SdfListOp<pxr::TfToken>>()) return {};
            const auto &SchemasListOp =
                SchemasUsdValue.UncheckedGet<pxr::SdfListOp<pxr::TfToken>>();
            const auto SchemaTokens = SchemasListOp.GetAppliedItems();

            for (const auto &SchemaToken : SchemaTokens)
            {
                SchemaTokensVec.Add(SchemaToken.GetText());
            }
        }

        return SchemaTokensVec;
    }

The callstack

UnrealEditor-Core.dll!00007ffbf29e0419() (Unknown Source:0)
UnrealEditor-Core.dll!00007ffbf22bf60c() (Unknown Source:0)
UnrealEditor-UsdXR.dll!operator delete(void * Ptr, unsigned __int64 Size) Line 9 (c:\Program Files\Epic Games\UE_5.6\Engine\Source\Runtime\Core\Public\HAL\PerModuleInline.inl:9)
[Inline Frame] UnrealEditor-UsdXR.dll!std::_Deallocate(void * _Ptr, unsigned __int64 _Bytes) Line 293 (c:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.50.35717\include\xmemory:293)
[Inline Frame] UnrealEditor-UsdXR.dll!std::allocator<pxrInternal_v0_25_2__pxrReserved__::TfToken>::deallocate(pxrInternal_v0_25_2__pxrReserved__::TfToken * const _Ptr, const unsigned __int64 _Count) Line 989 (c:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.50.35717\include\xmemory:989)
[Inline Frame] UnrealEditor-UsdXR.dll!std::vector<pxrInternal_v0_25_2__pxrReserved__::TfToken,std::allocator<pxrInternal_v0_25_2__pxrReserved__::TfToken>>::_Tidy() Line 2093 (c:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.50.35717\include\vector:2093)
[Inline Frame] UnrealEditor-UsdXR.dll!std::vector<pxrInternal_v0_25_2__pxrReserved__::TfToken,std::allocator<pxrInternal_v0_25_2__pxrReserved__::TfToken>>::{dtor}() Line 830 (c:\Program Files (x86)\Microsoft Visual Studio\18\BuildTools\VC\Tools\MSVC\14.50.35717\include\vector:830)
UnrealEditor-UsdXR.dll!UsdXRUtils::GetPrimAPISchemas(const UE::FUsdPrim & Prim) Line 49 (e:\Projects\UsdXR\UsdXRUnreal\Plugins\UsdXR\Source\UsdXR\Private\UsdXRUtils.cpp:49)
[Inline Frame] UnrealEditor-UsdXR.dll!FUsdXRModule::AddXRComponentsToPrim(const UE::FUsdPrim &) Line 64 (e:\Projects\UsdXR\UsdXRUnreal\Plugins\UsdXR\Source\UsdXR\Private\UsdXR.cpp:64)
UnrealEditor-UsdXR.dll!FUsdXRModule::AddXRComponentsToPrims(const UE::FUsdPrim & RootPrim, AUsdStageActor * StageActor) Line 57 (e:\Projects\UsdXR\UsdXRUnreal\Plugins\UsdXR\Source\UsdXR\Private\UsdXR.cpp:57)
[Inline Frame] UnrealEditor-UsdXR.dll!FUsdXRModule::OnStageLoaded(AUsdStageActor * StageActor) Line 45 (e:\Projects\UsdXR\UsdXRUnreal\Plugins\UsdXR\Source\UsdXR\Private\UsdXR.cpp:45)
UnrealEditor-UsdXR.dll!FUsdXRModule::StartupModule::__l2::<lambda_1>::()::__l2::<lambda_2>::operator()() Line 30 (e:\Projects\UsdXR\UsdXRUnreal\Plugins\UsdXR\Source\UsdXR\Private\UsdXR.cpp:30)
[Inline Frame] UnrealEditor-UsdXR.dll!Invoke(FUsdXRModule::StartupModule::__l2::<lambda_1>::()::__l2::<lambda_2> &) Line 47 (c:\Program Files\Epic Games\UE_5.6\Engine\Source\Runtime\Core\Public\Templates\Invoke.h:47)
[Inline Frame] UnrealEditor-UsdXR.dll!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence<unsigned int>>::ApplyAfter(FUsdXRModule::StartupModule::__l2::<lambda_1>::()::__l2::<lambda_2> &) Line 320 (c:\Program Files\Epic Games\UE_5.6\Engine\Source\Runtime\Core\Public\Templates\Tuple.h:320)
UnrealEditor-UsdXR.dll!TBaseFunctorDelegateInstance<void __cdecl(void),FDefaultDelegateUserPolicy,``FUsdXRModule::StartupModule'::`2'::<lambda_1>::operator()'::`2'::<lambda_2>>::ExecuteIfSafe() Line 894 (c:\Program Files\Epic Games\UE_5.6\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:894)
UnrealEditor-USDStage.dll!00007ffb8d7e82f1() (Unknown Source:0)
UnrealEditor-USDStage.dll!00007ffb8d86044c() (Unknown Source:0)
UnrealEditor-USDStage.dll!00007ffb8d86cea3() (Unknown Source:0)
UnrealEditor-Engine.dll!00007ffbe6ae3dee() (Unknown Source:0)
UnrealEditor-Engine.dll!00007ffbe7c49435() (Unknown Source:0)