Description
      1. Description*

We are using Interchange's `UInterchangeManager::ImportAssetAsync()` to import GLB files at runtime in a packaged (Shipping) application. The orchestration layer (`ImportInternal` in `InterchangeManager.cpp`) works correctly — translation, pipeline selection, and async task queuing all succeed. However, the downstream **factories** (static mesh, material, texture) produce assets that are broken in packaged/runtime builds, despite working in the editor. This required ~415 lines of application-level workarounds and a custom engine build.

We believe these are engine-level bugs: `ImportAssetAsync` exposes an async runtime API, but the factories behind it were not fully hardened for non-editor contexts (IoStore asset resolution, transient packages, absent mesh descriptions, missing shader libraries).

Of the 6 issues listed, **only Issue 1 has been fixed at the engine source level** (custom build). **Issues 2–6 remain as project-level workarounds** in our application code and have no engine-level fix.

> **Note:** The workarounds described below are provided for context to illustrate the scope of each issue and the effort required to work around it. They are not a viable long-term solution — the runtime performance cost of these workarounds (tangent rebuilds from render data, texture pixel copies, material replacement, flush calls) is significant. We temporarily moved away from using the Interchange pipeline for runtime GLB import due to these cumulative issues and their performance impact.

      1. Environment*
  • Unreal Engine 5.7.4 (custom source build)
  • Platform: macOS (arm64)
  • Build configuration: Shipping
  • Import destination: `/Temp/ImportedGLB/` (transient in-memory packages)
  • Parent material: `/InterchangeAssets/gltf/MaterialInstances/MI_Default_Opaque_DS`
      1. Summary*

These 6 issues required ~415 lines of workaround code and a custom engine build. Only Issue 1 has been fixed at the engine level; Issues 2–6 remain as project-level workarounds with no engine-level fix. The cumulative runtime performance cost of these workarounds — reconstructing mesh descriptions from render data, copying texture pixel data, replacing materials, flushing rendering commands — made the Interchange pipeline unsuitable for our runtime GLB import use case. We temporarily moved away from using the Interchange pipeline for runtime GLB import due to these issues.

The core issue is that `ImportAssetAsync` provides a public runtime API, but the downstream factories (static mesh, material, texture) and the cook pipeline were not designed to produce fully functional assets outside the editor.

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Editor - Open File Formats
Affects Versions5.7
CreatedApr 30, 2026
UpdatedJun 22, 2026
View Jira Issue