Incorrect loading .uasset file

We found a strange behavior .uasset-files: not saved some changes.

In an analysis of the situation was able to create a small sample reproduces the problem: loadfailure.

This project has three assets:

  • BpController - PlayerController, which contains a link to BpGameModeB (through the blueprint cast-node);
  • BpGameModeA - GameMode (not data only);
  • BpGameModeB - child of BpGameModeA (not data only);

When you try to set in BpGameModeA property “Player Controller” to BpContoller it is stored correctly, but on loading property “Player Controller” resets to default value.

This problem is reproduced, at least in the version 4.5, 4.6 and master branch.

Hi ,

I was able to reproduce this and have entered a bug report, UE-5996 to be assessed by the development staff.

This is a very annoying problem.
It takes longer for the first time. In this project breaks down in the most unexpected place and hard to find a cycle in the dependencies.

I try to debug and have following results:

  1. At the time of opening the editor BpGameModeA it starts to load from the disk;
  2. From BpGameModeA.uasset loaded PlayerControllerClass reffered to BpController.uasset;
  3. From BpController.uasset loaded Cast-node reffered to BpGameModeB.uasset;
  4. In method ULinkerLoad::CreateExport invoked RegenerateBlueprintClass for BpGameModeB.uasset;
  5. Method RegenerateBlueprintClass invokes:
  • ULinkerLoad::Preload for BpGameModeA.uasset, which does not do anything useful, because we currently already loading BpGameModeA.uasset;
  • ULinkerLoad::RegenerateBlueprintClass for BpGameModeA.uasset, which creates REINST-class from particaly loaded object. This REINST-class we see in the editor later;
  1. Finishes loading BpController.uasset (started at [3])
  2. BpContoller object set into BpGameModeA.PlayerControllerClass field (started at [2]), but it no longer has any role, because REINST-class already created.

Hi ,

Thank you for the additional information. This is still under assessment by the development staff. Unfortunately, I do not have a timeframe of when it will be fixed at present.

Currently, this is the most dangerous of all the problems that I have met in the Unreal Engine. It puts into question the appropriateness of the use Unreal Engine.

This is due to the following reasons:

  • Project breaks down silently, without any build/cooking errors;
  • The problem appears suddenly and not where a circular dependency is created;
  • The problem occurs only with a specific order of loading of resources (for example, appears in the cooked game, but not affected editor);
  • Very hard to find a workaround.

At the moment I’m trying:

  • Find a minimal example of another error with the same symptoms, but it looks like on the other branch code;
  • Learn how to display a message in the log if the problem was the place to be (at least that it is not broke silently).

In any case, I feel that I myself would not be able to correct the error.

Hi ,

Please keep in mind that most of Epic is on a 2 week holiday, from December 22nd to January 5th. While some support will be available over the holidays, there will most likely be delays in fixes. We appreciate your understanding regarding these delays. Have a happy holidays!

Second loading failure Mail.ru: почта, поиск в интернете, новости, игры when open a file Base/BaseTrooper.uasset is not correctly loaded file Base/AssaultClass.uasset (fields “Animation > Anim Blueprint Generated Class” and “Mesh > Skeletal Mesh” is empty).

Now I can log breaking circular dependency: https://github.com/EpicGames/UnrealEngine/pull/714

But I do not know how to fix the problem :frowning:

I checked on 4.7 - It’s look like working.