Crash occurs when projectile goes out of world

When setting the lifetime of our projectile to 20.0 seconds and the speed of it to 110,000.0 cm/s the engine will crash after printing out the following messages.

[2014.11.02-02.46.54:948][185]LogProjectileMovement:Warning: BP_M791_C_3 is outside the world bounds!
[2014.11.02-02.46.54:963][186]LogProjectileMovement:Warning: BP_M791_C_2 is outside the world bounds!
Ensure condition failed: this->IsBound() [File:d:\unrealengine\engine\source\runtime\core\public\delegates\DelegateSignatureImpl.inl] [Line: 2039] 
Unable to bind delegate to '&UMovementComponent::PhysicsVolumeChanged' (function might not be marked as a UFUNCTION)
UE4Editor.exe has triggered a breakpoint.

From what I can see in the code in the ProjectileMovementComponent.cpp file, there is a function called CheckStillInWorld() and it crashes in the SetUpdatedComponent() function of the UMovementComponent class tries to call UpdatedComponent->PhysicsVolumeChangedDelegate.RemoveDynamic(this, &UMovementComponent::PhysicsVolumeChanged);.

Well there is an ensureMsgf debug hook (in DelegateSignatureImpl.inl) that gets triggered because the PhysicsVolumeChanged is no longer bound to any delegates. I have checked the code with IsBound() before calling RemoveDynamic but it still gets in there and crashes.

The only work-around we can currently employ is to limit the lifetime of our projectile to something quite a bit less than 20 seconds (we actually used 3 seconds) so that it will not go out of bounds.

Just an FYI, I just created a new C++ First Person project. I set the lifetime to 0.0 (to ensure it would go out of bounds) and I set the max speed to 200,000 and the initial speed to 110,000. It crashed when I was running in “Local Windows Debugger” mode in VS2013. This project was using 4.5.0 and my other project was using the 4.5.1-release branch out of git hub. So this issue appears in both and is very easy to reproduce with the C++ First Person template.

Hello! , I have a question for you, how you implemented the turns in the tank, if you can see a piece of code which is responsible for turning or at least a hint where you can see the implementation of the turns.Sorry for my English

Hi ,

I did some testing and was able to reproduce this issue in 4.5.1. However, when I tried to reproduce it using our latest internal build, I was not able to trigger the breakpoint. It looks like the issue has already been resolved and will be corrected in a future release of the Engine.

OK, wonderful, that is great news indeed! I’ll be interested in knowing what was causing it. Anyhow, once I get home tonight I’m looking into another issue and trying to determine the cause of it. I may be putting in another bug report, but we’ll see. I need to be sure of where the error is occurring for this next one. Thanks so much !