Virtualbird UG - Real Time Import/Export Plugin

Hi Socke!

Brais here with some potential new findings.

I wanted to report an issue that appeared recently with the runtime importer, as I believe there may be a race condition or state management issue occurring internally.

I have a workflow that has been working reliably for approximately two years. The process imports multiple OBJ models sequentially using runtime importer actors spawned from a manager actor. The sequence is roughly:

  1. Spawn Runtime Importer

  2. Import OBJ

  3. Wait for Success/Failure callback

  4. Start the next import

Recently, the importer started hanging intermittently. In these cases:

  • The import does not complete successfully.

  • The failure callback is not triggered.

  • The process simply stops progressing.

  • The issue occurs inconsistently, but often after importing multiple files in succession.

  • Sometimes it happens on the first file, but more commonly on the second or third import.

Initially I suspected file corruption, path issues, or malformed OBJ/MTL files. After inspecting the files, I could not find any obvious corruption or formatting problems.

The interesting discovery is that adding a delay after a successful import resolves the issue. For example:

Import Success
→ Delay
→ Start next import

After introducing a small delay, the entire import chain completes successfully and consistently.

This makes me suspect that the Success callback may be firing before all internal cleanup or asynchronous processing has fully completed, causing the next import request to begin while the importer is still finalizing resources or internal state.

Possible causes that came to mind:

  • Internal async tasks still running after Success is reported.

  • Resource cleanup not fully completed before the next import begins.

  • Shared/global importer state not being reset in time.

  • Multiple sequential imports exposing a race condition that previously went unnoticed.

  • Timing-sensitive behaviour affected by recent environment changes.

The most important observation is that the import can enter a state where neither Success nor Failure is fired, effectively leaving the import process stalled indefinitely.

If there are any recommended delays, queueing mechanisms, completion events, or known limitations regarding sequential imports, I would be interested to know.

Please let me know if you’d like additional logs or a reproducible test setup.

Thanks,
Brais

P.S. This happened while running in the editor.

P.P.S. This occurred in Unreal Engine 5.3.2 after I installed Unreal Engine 5.8 from the Epic Games Launcher earlier this morning. The project itself is still running in 5.3.2, but I wondered whether some shared resource, dependency, cache, or environment change could have triggered this timing-sensitive behaviour.

For everyone else: I’ve answered the question via email. Since there was just a patch released that also affects this code, the problem may already have been resolved. Otherwise, I’ll create a patch.

Hi everyone,

I just want to commend Socke for his work, as the issue has been resolved swiftly and seems to be running great once again after the latest patch I downloaded today.

Best,

Brais