Weird reference-related compile error on reloading editor until you re-check out and save function library and then the calling blueprint

So, per the title, I sometimes get weird blueprint compile errors that occur when the blueprint I’m compiling calls functions in a blueprint function library. I include a screenshot of the error. This occurs even when there have been no changes in either blueprint.

To fix, open the function library, compile it, check it out and save it. Then re-compile the calling blueprint. Sometimes you might need to delete the node that called the function, and then re-create it in the calling blueprint.

Hi David M,

Which version of the editor are you currently using? Does this occur in a clean project with no additional content or is it specific to one project?

Hi Adam,

Our team is on 4.6.0. For stability we have been sticking to this version.

I’m not sure how to repro on a clean project, so I couldn’t tell you. I can tell you that I created the CharBPLibrary Function Library so as to abstract as much BP code away from our CharacterBP class as possible. Our CharacterBP inherits from a C class and then has child classes for different character types as well. We were getting lots of issues with data and inheritance and in particular I got another consistent editor corruption (crash on launch editor) when I made a particular type cast in BP on the CharacterBP parent blueprint. So I started putting work in the CharBPLibrary instead so I didn’t have to edit the character BP as often and risk issues with that.

Oh, and to help you narrow it down – I also get errors on trying to save, before compilation has been successful (i.e. before I check out and recompile the library class and then go back and recompile the character class).

I attach screenshots of the save errors.

Have you changed the names or locations of any objects in your content browser?

At various stages, absolutely. However we have used Fix Up on any redirectors when necessary. Moreover, if a moved file was the problem, would it be possible to open the function library BP, recompile and resave it, in order to restore the reference and allow the other BP to compile? Because that is the behavior we are seeing.

Hey David,

Could you convert a copy of your project to 4.7 to see if this bug still exists there?

Thanks for the follow-up. I am looking into what it would take to migrate our project. It’s likely to be a week or two before we get the resources to attempt a conversion.

I meant just a hasty conversion (of a copy, of course!) to see if the bug still exists. I’m not pressuring you begin a full conversion because I’m not 100% certain the bug is fixed in 4.7.

Neat – could you point me towards documentation for the quickest way to do that? I’d definitely be willing to take a stab at it. In our project we build our own editor and engine from source. But if I have to download a binary version of the editor to store elsewhere I could do that.

How do I go about performing this conversion given our project setup? Thanks.

This happens in our project too, using 4.7.2.

I have a blueprint that calls function library blueprints. I cannot compile this blueprint without first compiling the function libraries.

Until I do, it gives errors like:
Error The current value (/Engine/Transient.REINST_Stamina_C_1) of the ’ Target ’ pin is invalid: /Engine/Transient.REINST_Stamina_C_1 isn’t a Stamina_C (specified on pin self)

Sorry for the delay.

If you open 4.7 and then try to open a project that was created in 4.6, it’ll ask if you want to Convert a Copy, Convert In Place, Skip Conversion or Cancel (to open that pre-4.7 project in 4.7).

That said, if Bullborn is correct and this same bug exists in 4.7.2, there’s no need to convert. Have you tried his solution - compiling the function/macro libraries and then compiling the blueprint with the error?