Blueprint Interface "Graph already exists" crash in standalone

When launching my game in standalone mode, my game crashes on startup because of errors in various blueprints. Some have been in interactable objects or the HUD, but the thing they have in common is that the crash is consistently complaining about functions from interfaces the blueprints implement.

In this one “BPU_HudTemplate” is the name of my HUD class. The “GetToolbeltItem” function is an interface function that HudTemplate implements.

Is there any insight on what might be causing this? My HudTemplate and its child classes only implement the function once, and the game compiles and runs without warnings or errors in PIE. I’m currently running version 4.5.0.

Update with more information if it’s helpful.

I’ve done some more digging and cleaned the interfaces in question a bit, and after removing and attempting to re-add these interfaces to the HudTemplate class, I get the following error:

LogBlueprint:Error: [BPU_HudTemplate] ImplementNewInterface: Blueprint '/Game/_Common/Blueprints/UMG/HUD/BPU_HudTemplate.BPU_HudTemplate' has a function or graph which conflicts with the function GetMonitorMode in the interface called 'BPI_HudInterface_C'

The function is different but I suspect the cause is the same. One of the interface functions claims to be conflicting with a function that HudTemplate already implements, but I can’t see that any such function exists.

^ Here are the variables and functions (and lack thereof) the HudTemplate has. It inherits some things from its C++ parent classes like AHUD and a custom widget container I made, but nothing that I can see would interfere with blueprint interfaces. As shown, no functions are exposed as blueprint-overridable through these C++ interfaces.

1 Like

I had the same issue when I change the interface type it didn’t show in blueprint when I tried to delete and add again got the same error.

A simple solution is to remove the interface then restart the project, make whatever changes you want to make in the interface and add again.

Found a solution, at least in blueprints.

  • Delete the interface event from the blueprint, compile and save
  • Go to blueprint class settings and under ‘implemented interfaces’ remove the offending interface, when prompted to transfer interface functions, select “no”. Compile and save.
  • Add the interface back in under ‘implemented interfaces’. Compile and save.
  • Add the event back in, compile and save.

That should do it.