Hi Unreal Gurus!
I’m getting some strange BP behaviors here. Sometimes things will crash, sometimes they’ll compile (seems to be related to if I’ve played any PIE sessions)…if things DON’T crash I’ll get the following error:
-“Internal Compiler Error: CreateExecutionSchedule (Site 1): contact Framework team as we need a repro for this bug!”
-followed by a property error (the property associated with “variable name” could not be found.
Here’s a fun image:
In short, I’m trying to take a little tile/puzzle game prototype I’m working on from being solo to networked, and so my BP classes have a lot of “half done” and scattered pieces all over the place. I suspect that my heavy use of casting around is causing some crazy circular dependencies, and that as I’ve been working on rebuilding stuff for networking I’ve been compounding the problem and that’s what this crashing and erroring is a result of…although I’m not quite sure how best to avoid the workflow in some cases.
To explain the image:
- This is a “tile” class that the player owns in the game. They can select it in order to place it on the board.
- The playerpawn owns a ‘hand’ actor (like a poker hand), which is responsible for spawning the individual tiles for the player.
- I initially set out to replace the “Set Actor Scale3d”‘s NewScale3d input to point at a vector actually owned by this tile class. Previously it had been referencing a vector owned by the MyHand class (which held a list of all the tiles for the pawn). (I’ had been to starting making more stuff local to each class in an effort to see if that helped stability a bit)
- Upon setting the new variable to that setActorScale3d node, and compiling, everything looks ok, and works as suspected. Upon reopening the editor, however, the pins at the end of the “Event on actor clicked” chain will become disconnected, as marked in the picture. Regardless of whether or not you reconnect those, compiling the class will fail with the errors listed above/shown in the image.
- The “build cursor from tile” function that is called at the end of that chain takes this existing tile and sends its “class” over to the pawn, who spawns a second instance of it as the player’s “cursor”.
- This is in version 4.4.1, btw.
- I’ve got a clone of my content directory at this state available to send to you guys directly, should you want it.
Thanks so much!
Hi blankslatejoe,
Have you been able to reproduce this in a blank project with no additional content? Additionally, can you post your crash logs and callstack here so we can have a look? Thank you!
Unfortunately, I doubt its the kinda of thing that I can reproduce with a blank project–there are a lot of classes, arrays, and arrays of classes going on here and I’d likely end up recreating the whole project before I got you a clean(er) example.
It might be related to throwing around class variables (not the object variables, but using the actual class type as a variable. I’ve got a couple of lists of classes to use for spawning various “tiles” and even arrays of custom structs with “class” type subcomponents within).
As for the callstacks, the above image does NOT result in a crash directly–things will work fine and then upon restart (or a later crash and then restart) the blueprint will be all messed up as shown in the image.
If I try and clean up the blueprint shown above to try to coerce the BP to compile…well… the editor eventually comes under the opinion that crashing on launch preferable to letting me tinker with BPs anymore. Not sure I blame it.
Here’s THAT crash callstack in its entirety:
“!Id:31054729968dc26e1b8391de33646f54
We apologize for the inconvenience.
Please send this crash report to help improve our software.”
I’m not sure that’s all that helpful.
The other crashes I’ve been getting were happening pretty regularly (once every 2-5 minutes at one point, but the second I went to try and reproduce one of those crashes of course things start playing nice. I’ll post another comment if/when I capture one of those crashes.
Ok, got a crash! This will take two comments to post in full:
!Id:31054729968dc26e1b8391de33646f54
Unknown exception - code 00000001 (first/second chance not available)
Assertion failed: !HasAnyFlags(RF_NeedLoad|RF_NeedPostLoad) [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.4\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectLinker.cpp] [Line: 94]
Detaching from existing linker for ..//..//..//..//.
KERNELBASE + 23544 bytes
UE4Editor_Core + 3095148 bytes
UE4Editor_Core + 1661722 bytes
UE4Editor_Core + 1541808 bytes
UE4Editor_CoreUObject + 1610740 bytes
UE4Editor_CoreUObject + 927331 bytes
UE4Editor_CoreUObject + 1108097 bytes
UE4Editor_CoreUObject + 1105561 bytes
UE4Editor_BlueprintGraph + 939346 bytes
UE4Editor_BlueprintGraph + 569703 bytes
UE4Editor_UnrealEd + 8748771 bytes
UE4Editor_KismetCompiler + 341113 bytes
UE4Editor_KismetCompiler + 343244 bytes
UE4Editor_KismetCompiler + 342078 bytes
UE4Editor_UnrealEd + 8984858 bytes
UE4Editor_Kismet + 595751 bytes
UE4Editor_Kismet + 834589 bytes
UE4Editor_Kismet + 854871 bytes
UE4Editor_Slate + 545350 bytes
UE4Editor_Slate + 1884845 bytes
UE4Editor_Slate + 1691884 bytes
UE4Editor_Slate + 2512538 bytes
UE4Editor_Slate + 2748777 bytes
UE4Editor_Slate + 794079 bytes
UE4Editor_Slate + 727433 bytes
UE4Editor_Core + 2503749 bytes
UE4Editor_Core + 2422753 bytes
UE4Editor_Core + 2508174 bytes
UE4Editor_Core + 2410066 bytes
user32 + 9268 bytes
user32 + 8855 bytes
Part two:
UE4Editor_Core + 2509366 bytes
UE4Editor!FEngineLoop::Tick() + 2877 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.4\engine\source\runtime\launch\private\launchengineloop.cpp:2080]
UE4Editor!GuardedMain() + 476 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.4\engine\source\runtime\launch\private\launch.cpp:133]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.4\engine\source\runtime\launch\private\windows\launchwindows.cpp:125]
UE4Editor!WinMain() + 249 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.4\engine\source\runtime\launch\private\windows\launchwindows.cpp:201]
UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]
I seem to frequently get that crash right after saving, right after doing a PIE a couple of times. I’ll also get it when juggling multiple BP classes where compiling one will mark another as dirty.
-edit -I also just got it after coming back from the machine being idle–so an autosave might have triggered. Same callstack.
I up the entire content directory there’s no real non-BP experiments in it, and pass it your way if you think it will help.
Well lets try a few things first, because unfortunately without repro steps I cannot do much to assist. Try opening the project, then play in editor, then save. Afterwards, remove your entire content folder from the projects directory, open the editor and do the same thing. Do either of these crash?
Nope, neither of those crashed. I restored the content folder afterwards and tried test 1 again, and still no crash.
Got another test for me to try?
Hm. Well what steps do you usually take just before a crash occurs? The good news is that most likely if the crash didn’t occur when you removed the content folder, that it is asset related and not project related. So that is a step forward. You said you PIE several times, try opening and closing pie several times without the content folder in the project and then saving.
Hi ,
So I can load/close PIE-without-content as often as I’d like, no crashing. Since there’s no content I get weird errors in the log, like so (excerpt):
"LogNetPackageMap:Warning: FNetGUIDCache::SupportsObject: Level /Temp/UEDPIE_1_Untitled_0.NewWorld:PersistentLevel NOT Supported.
LogNetPackageMap:Warning: FNetGUIDCache::SupportsObject: Level /Temp/UEDPIE_1_Untitled_0.NewWorld:PersistentLevel NOT Supported.
LogNetSerialization:Error: FBitReader::SetOverflowed() called
LogNetSerialization:Error: FBitReader::SerializeBits: Pos + LengthBits > Num
LogNetPackageMap:Error: InternalLoadObject: Failed to load path name
LogNetPackageMap:Error: UPackageMapClient::ReceiveNetGUIDBunch: InBunch.IsError() after InternalLoadObject
LogNetTraffic:Error: UChannel::ReceivedRawBunch: Bunch.IsError() after ReceiveNetGUIDBunch. ChIndex: 7..
... LogNetPackageMap:Error: InternalLoadObject: Failed to load path name
LogNetPackageMap:Error: UPackageMapClient::ReceiveNetGUIDBunch: InBunch.IsError() after InternalLoadObject
LogNetTraffic:Error: UChannel::ReceivedRawBunch: Bunch.IsError() after ReceiveNetGUIDBunch. ChIndex: 3
After trying to get repro steps I’m thinking this isn’t directly related to PIE, but that PIE 's autosaving is triggering the crash. I’m most consistently able to reproduce the crash when working with key “lynchpin” BPs that are referenced by lots of other actors. On save those other classes get marked as dirty, and when saving them the lynchpin class then gets marked at dirty again-resulting in the never-ending cycle of ‘starred’ blueprints. Usually shortly after this, or while compiling during this, I’ll crash. Actually, the crash most often happens “on compile”.
I can draw a little picture of my class tree if you’d like.
Yup! Tried that early on, actually. It doesn’t seem to help stability much…and will start that endless cycle of “compiling one thing makes other stuff marked as dirty, which compiling will make other stuff marked as dirty, which compiling will make the first stuff dirty again and so on and so on”.
If I’m simply referencing/casting in a suboptimal fashion–which I suspect is the root of my issues–do you have any tips on how to best manage complex blueprint networks where references to other blueprints are required? Should I pass references to parent objects on spawn? Should I register things in the construction event? Should I use “for all actors” iterators to query for the single instance of an actor I want, perhaps via tag matching or something? Thanks for any guidance you can offer here, btw.
Have you tried compiling all of your blueprints before doing anything? There are times that editing one bp will force you to have to compile another. It may be a good idea to do a run through and just compile them all and see if that helps.
That may be a question best asked on the forums, which can be found at http://forums.unrealengine.com. I would post in the blueprint scripting section as the community is extremely pleasant and willing to help other users. A lot of it depends on how you are casting to objects now and if you are using interfaces for some of the functionality. Additionally, can you post your logs here so we can see what may be occurring? Thank you!