We have a datatable asset that when opened from the content browser it opens normally:
[Image Removed]
But if we open this same datatable from the reference viewer (we do reference viewer on it then right click on it and press Edit) two datatable assets are opened instead, one with the original name and the other the original name with 2 attached:
[Image Removed]
In the reference viewer we will see this datatable referencing other assets if the references are either in our original datatable or this other “second” “ghost” datatable.
Digging into the code when we open the datatable from the reference viewer, it ends calling FAssetManagerEditorModule::OnEditAssetIdentifiers, and there, a call to IAssetRegistry::GetAssetsByPackageName is indeed returning two FAssetData.
Our strategy to remove this “ghost” datatable is going to be to create a new one and delete completely this datatable uasset. Said this, when we delete it in the content browser in the reference viewer we still see the “ghost asset” referencing other assets and the uasset still on disk but not visible in the content browser, so we have to force delete the file.
But we are wondering how this could have happened in the first place so we can avoid this happening in the future.
I’m investigating this as a possible bug and I could use some additional context as I haven’t been able to reproduce this in a clean project. A minimal reproduction project or a set of reproduction steps would be great great. However I understand it may be Impractical depending.
I also have a questions that might help us narrow down the possibilities:
It’s possible there may be a circular dependency for the data table. What sort of assets are being referenced? If they are more complex assets such as blueprints are they also referencing the data table?
Is there a duplicate file inside the folder containing the data table that isn’t being loaded by the editor?
Have you tried checking if any redirectors exist for the data table? They may require cleaning up or if one was created manually in the past it might need to be manually removed.
And any other information that might help would be greatly appreciated!
Indeed, as you say it is complicated to know the origin / root of this.
I have checked on what you said: no duplicates of the file visible in the content browser neither physically on the disk, no redirectors pointing to this asset and also no circular dependencies.
That does not mean there were not in the past and we removed them already, and in that process something triggered the creation of this “ghost” embedded asset inside the same uasset file.
I am very sorry that I cannot provide more information.
I really appreciate the time you are dedicating to this.
I totally understand it is very difficult if not almost impossible to repro on your side and unfortunately so it is on our side to try to get again the same situation.
We deleted the asset and recreated it and the issue is not happening again.
We are running a source build but we have not done any significant changes in the area of data tables or asset serialisation.
We are working towards a build but as soon as I can I will go back to a changelist where we had this issue and try to send you the conflictive asset and/or logs.
Thank you for checking those edge cases for me. I have looked into this further and Unfortunately I still have not been able to reproduce the issue.
If I can’t reproduce the issue it will be extremely difficult to track down the underlying issue. Ideally you would provide a project that we could reproduce this issue in. A minimal reproduction project would be perfect but I think given the nature of the issue, recreating the assets in a fresh project might not yield the same results. If possible, you could isolate the relevant files in a copy of the project.
It sounds like you can hit a break point on your end. Could you provide the call stack (with editor symbols loaded) for when this occurs? The log output leading up to the event would also be helpful.
One more question that could help, Are you running this in an Epic Games Launcher build or a source build? & If it is a source build have there been any modifications to the engine that might relate to the issue?