Description

As indicated in the repro steps, we have a StaticMesh asset that, for some reason, has a mismatch in their serialized bulk data where:

  • MeshDescription->GetNumUVElementChannels() == 2
  • FStaticMeshConstAttributes(MeshDescription).GetVertexInstanceUVs().GetNumChannels() == 1

When exporting to FBX with bExportSourceMesh = true, in FFbxExporter::ExportStaticMeshFromMeshDescription:

  • TexCoordSourceCount = 2, so the loop that creates UV layer runs with TexCoordSourceIndex = 1
  • It calls VertexInstanceUVs.Get(VertexInstanceID, TexCoordSourceIndex)
  • As VertexInstanceUVs has only one channel, it crashes.
Steps to Reproduce

Steps to Reproduce

  • In the Content Browser, pick a StaticMesh asset that has its bulk data serialized such that its MeshDescription's UVElements has more channels (e.g. 2) than FStaticMeshConstAttributes::GetVertexInstanceUVs (internally, VertexInstanceAttributes().GetAttributesRef<FVector2f>(MeshAttribute::VertexInstance::TextureCoordinate)[Image Removed]
  • Right-click on the asset in the Content Browser and select Asset Actions -> Export
  • Check the option to "Export Source Mesh"
  • Export to FBX.
  • Observe the crash, where the log says "Array index out of bounds: 1 into an array of size 1"
Callstack

UnrealEditor-UnrealEd.dll!TMeshAttributesRef<FVertexInstanceID,UE::Math::TVector2<float> const>::Get<FVertexInstanceID,0>(const FVertexInstanceID ElementID, const int Channel) Line 914 C++
UnrealEditor-UnrealEd.dll!UnFbx::FFbxExporter::ExportStaticMeshFromMeshDescription(fbxsdk::FbxMesh * Mesh, const UStaticMesh * StaticMesh, const FMeshDescription * MeshDescription, fbxsdk::FbxNode * FbxActor, int LightmapUVChannel, const TArray<FStaticMaterial,TSizedDefaultAllocator<32>> * MaterialOrderOverride, const TArray<UMaterialInterface *,TSizedDefaultAllocator<32>> * OverrideMaterials, const UnFbx::FFbxMaterialBakingMeshData & MaterialBakingMeshData) Line 5116 C++
UnrealEditor-UnrealEd.dll!UnFbx::FFbxExporter::ExportStaticMeshToFbx(const UStaticMesh * StaticMesh, int ExportLOD, const wchar_t * MeshName, fbxsdk::FbxNode * FbxActor, const UnFbx::FFbxMaterialBakingMeshData & MaterialBakingMeshData, int LightmapUVChannel, const FColorVertexBuffer * ColorBuffer, const TArray<FStaticMaterial,TSizedDefaultAllocator<32>> * MaterialOrderOverride, const TArray<UMaterialInterface *,TSizedDefaultAllocator<32>> * OverrideMaterials) Line 5618 C++
UnrealEditor-UnrealEd.dll!UnFbx::FFbxExporter::ExportStaticMesh(UStaticMesh * StaticMesh, const TArray<FStaticMaterial,TSizedDefaultAllocator<32>> * MaterialOrder) Line 1218 C++
UnrealEditor-UnrealEd.dll!UStaticMeshExporterFBX::ExportBinary(UObject * Object, const wchar_t * Type, FArchive & Ar, FFeedbackContext * Warn, int FileIndex, unsigned int PortFlags) Line 2399 C++
UnrealEditor-Engine.dll!UExporter::ExportToArchive(UObject * Object, UExporter * InExporter, FArchive & Ar, const wchar_t * FileType, int FileIndex) Line 180 C++
UnrealEditor-Engine.dll!UExporter::RunAssetExportTask(UAssetExportTask * Task, int ExtraPortFlags) Line 394 C++
UnrealEditor-AssetTools.dll!UAssetToolsImpl::ExportAssetsInternal(const TArray<UObject *,TSizedDefaultAllocator<32>> & ObjectsToExport, bool bPromptIndividualFilenames, bool bSaveAsCleanFilename, const FString & ExportPath) Line 4483 C++
UnrealEditor-AssetTools.dll!UAssetToolsImpl::ExportAssetsWithDialog(const TArray<UObject _,TSizedDefaultAllocator<32>> & AssetsToExport, bool bPromptForIndividualFilenames) Line 2830 C++_
_UnrealEditor-ContentBrowserAssetDataSource.dll!FAssetFileContextMenu::ExecuteExport() Line 1917 C++_
[Inline Frame] UnrealEditor-ContentBrowserAssetDataSource.dll!Invoke(void(FAssetFileContextMenu::)() PtrMemFun, FAssetFileContextMenu * &) Line 66 C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-361738 in the post.

0
Login to Vote

Unresolved
CreatedJan 22, 2026
UpdatedFeb 9, 2026
View Jira Issue