Random Crash in UPlayerInput::ProcessInputStack

Hi, there :
We have suffered random crash frequently in UPlayerInput::ProcessInputStack( PlayerInput.cpp, Line 976 )
FDelegateDispatchDetails TouchInfo(EventIndices[0], NonAxisDelegates.Num(), TB.TouchDelegate, TouchEventLocations[EventIndices[0]], TouchIndex);

The reason is TouchEventLocations is Empty, but EventIndices isn’t.

Fortunately, we’ve found a way to trigger this crash for you:

  1. Press Game World, hold on.
  2. Open a fullscreen UMG Button.
  3. Release Press.
  4. Click any UMG.
  5. Crash happens.

Best regards.

Hello ,

I have a few questions for you that will help narrow down what issue it is that you are experiencing.

Quick questions:

  1. Can you reproduce this issue in a clean project?
  2. If so, could you provide a more detailed set of steps that include any steps that may have been missed in your original post in order to reproduce this issue on our end?
  3. Could you provide screen shots of any blueprints that may be involved with this issue?
  4. Could you provide the complete crash log that is given when the editor crashes?

Hello ,

We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you are still experiencing the issue you reported, please respond to this message with additional information and we will offer further assistance.

Thank you.

Hi,
Sorry for delay response so long, cause we’re in an emergency situation, so we don’t have spare time to test this crash more.

This crash is triggered in Game, not in Editor.

We can reproduce this crash along with the step I introduce earlier. and I can added some detail below.

  1. Press Mouse to a position in viewport where there is No UMG only Game World, hold on, don’t release mouse.
  2. Open a fullscreen UMG Button without release mouse, hold on still.
  3. Then release mouse, and it will trigger the crash.

Now we’ve fixed this situation temporarily by adding a line of code to check if the TouchEventLocations contain the EventIndices[0].

And the result goes well. Maybe we’ll test this crash again when we have a period of spare time.
Hope this is useful for you.

Hello,

I was unable to reproduce this issue on our end. Would it be possible for you to provide a sample project that produces this issue?

I’m experiecing this issue too. It happens on iOS and Android, the problem on PlayerInput.cpp[976]. As said, TouchEventLocations is empty while EventIndices isn’t, this could happen on a quasi-random state while touching the device. I think a plausible workaround could be to just discard that particular touch by just ignoring the input if TouchEventLocations is nullptr.

Now I’m seeing that this bug might have been addressed in 4.11. I will update here if I find it fixed.

I can confirm this issue too. This issue occurs on my android tablet when using the Released Pin on my InputTouch Event within my player controller blueprint. A fix would be highly appreciated. Reproduction: Android Input Crash - Programming & Scripting - Unreal Engine Forums

Ok, I confirm this is resolved on 4.11 P2.

Hello Schifty,

I have a few questions for you that will help narrow down what issue it is that you are experience.

Quick questions:

  1. Can you reproduce this issue in a clean project?
  2. If so, could you provide a detailed list of steps to reproduce this issue on our end?
  3. Could you provide the exact mobile device that is currently being used to reproduce this issue?
  4. Could you provide the current OS that is being run on the device?
  1. Yes

Start UE 4.10.2.
Create new project using Top Down Template with no Starter Content, optimized for mobile.
Create a widget blueprint and place a umg button element in the left bottom corner.
Add the widget to the viewport by creating and adding it within EventBeginPlay / TopDownGameMode.
Launch the game on your device.
Move your finger fast over the border of your screen corner and over the added UMG button.
The video explains what I mean: https://giphy.com/gifs/wQ7KhGhJCT3YA

  1. SM-P600
  2. Android 4.4.2

Additional Info:
I have extracted this message from the Android Debug Monitor when the crash occurs: Assertion failed: Pair != nullptr [File:Runtime/Core/Public/Containers\Map.h] [Line: 481]

Crash Log:

backtrace:
#00 pc 01e2ca0c /data/app-lib/com.MagicTowerPower-1/libUE4.so (UPlayerInput::ProcessInputStack(TArray const&, float, bool)+3752)
#01 pc 018a94f8 /data/app-lib/com.MagicTowerPower-1/libUE4.so (APlayerController::ProcessPlayerInput(float, bool)+80)
#02 pc 018a881c /data/app-lib/com.MagicTowerPower-1/libUE4.so (APlayerController::TickPlayerInput(float, bool)+832)
#03 pc 018a83b4 /data/app-lib/com.MagicTowerPower-1/libUE4.so (APlayerController::PlayerTick(float)+80)
#04 pc 018af488 /data/app-lib/com.MagicTowerPower-1/libUE4.so (APlayerController::TickActor(float, ELevelTick,

After looking over the new information provided I was able to reproduce this issue on our end. I did a bit more digging with the new information and found that this is a known issue (UE-24358) and that it has been resolved internally. This solution will be available in a later release of the engine. Thank you for your time and information.

Make it a great day

Any idea what engine version this fix will make it into? We’re launching a mobile title in < 2 months and can’t afford to have touch input crashing the engine all the time (which it’s doing a lot of at the moment…)

EDIT: Failing that can we get a link to the change on GitHub so we can merge it into our own engine version?

Hello ,

I went ahead and double checked on this issue for you and it appears as though it has been resolved in 4.11, however there is not a particular change list associated with the solution.