Why am I getting a duplicate of a blueprint class in class selection drop down/list...?

I’m kind of out of my depth on this one - I am doing some class sorting inside of a ‘get a random object of type x’ function in a blueprint. At one point I was seeing 4 instances of the same class in the list, so I restarted unreal, and now I am getting 2 of them. One of them is actually wrong because I can’t link it to it’s specific pin, so it’s kind of annoying having to guess which of these instances is the ‘real’ one.

Has anyone ever experienced this or know what might cause this? I verified there is only one .uasset of said class so…?

Ok so I finally got an error message that helped:
5309.06][660]LogUObjectHash:Warning: Ambiguous search, could be BlueprintGeneratedClass /Temp/Diff/Temp-2-Rev-489-BASE_SeedCluster.BASE_SeedCluster_C or BlueprintGeneratedClass /Game/Seeds/BASE_SeedCluster.BASE_SeedCluster_C

I did a search on the drive and discovered that Unreal keeps a saved version of diffed blueprints, and then for some reason decides to refer to it in the class dropdowns (say for find all actors of class: node). This has to be a bug, at least in the fact that the saved diff version isn’t renamed in some way to indicate its status.

Hi DanaFo,

  • Does this occur in a clean, blank project with no additional content or is it limited to one project?
  • What steps can I take to reproduce thi son my end?
  • Have you tried fixing up redirectors? To do so, go to your content browser contents folder and press RMB>Fix up Redirectors.

Hi Adam,
I did reproduce it with a blank blueprint project.

Steps:

Make 2 actor classes.

Add a few random nodes in each that compile.

Close project.

Submit to source control.

Re-open project.

Make small changes to the classes so there’s something to diff later.

Close project.

Submit to source control.

Re-open project.

EDIT: Forgot this step! -Go into a class, choose diff and select the oldest submitted version, just click on a few things in the diff screen once it’s loaded, move around etc but don’t actually make any merge or related actions.

Go into the other class and use a node that has an object/class drop down (ie: == object as per screenshot.) You should see the duplicate of the diffed class held in the diff folder.

I did try fix up redirectors (although I have no idea what this does) just now but I still get the same duplicates in the list.

Note: This is the first time it has shown me the directory via mouseover, but this probably still invites confusion. If it is determined that this is ‘as designed’ it would be great to get a TempDiff prefix or equivalent in front of the class name and not rely on mouseover info.

Thanks!

Hi DanaFo,

Unfortunately I haven’t been able to reproduce this on my end. Are you selecting the diff in p4 or what specific steps are you taking to get this oldest diff? I attempted the reversion in p4 but without any success. Are there any other steps I can take to reproduce this on my end?

This has occured using git and tortoise/svn. Maybe that’s the difference?

But otherwise that’s literally all I’m doing. Do you have uasset files in the Temp/Diff after opening a diff revision?

Thank you for the updated information, checking the diff through blueprints instead of in p4 caused the error to occur and I have entered a bug report, UE-23260, to be assessed by the development staff.

It is worth to mention and add to the bug report, that those temp diff blueprint files are visible in ‘Open Asset’ window(Ctrl+P) as well. In result, the user needs to hover over the result and compare file path to select the correct one.