Search Issue Tracker

By Design

Votes

0

Found in

2019.3

2019.3.12f1

2020.1

2020.2

Issue ID

1246410

Regression

No

[WebGL] Build crashes with 'PlayerLoop called recursively' error when loading scene

WebGL

-

Reproduction steps:
1. Open the user's attached project ("SGC Project.zip")
2. Open Addressables groups window and Build Player Content (Build > New Build > Default Build Script)
3. Make a WebGL build and run it
4. Once the build loads, click "Scenario Editor" in the menu

Expected result: Scene loads without issues
Actual result: Build crashes with "An abnormal situation has occurred: the PlayerLoop internal function has been called recursively." error

Reproducible with: 2019.3.15f1, 2020.1.0b10, 2020.2.0a11
Couldn't test with 2018.4 (project errors after downgrade)

Note: Crash does not reproduce in Editor, or Standalone builds (both Mono and IL2CPP)

  1. Resolution Note (2020.2.X):

    The reported error is caused by an out of bounds memory error in the VesselPropertiesPanel.Clear method, specifically the line `speedSlider.value = 0';`. speedSlider is a SliderEvents object, and for the slider property is null, so it's crashing when when calling speedSlider.slider.value.

    SliderEvents.Start initializes the slider property. VesselPropertiesPanel.Start calls clear, which expects SliderEvents.Start to have already been called. The order that the Start event is called isn't completely deterministic, so while it worked in your favor in Standalone, SliderEvents.Start is being called after VesselPropertiesPanel.Start on WebGL, so speedSplider hasn't been initialized yet and it's slider property is still null when Clear is trying to set its value.

Comments (1)

  1. almenon

    Jun 28, 2024 04:28

    Thanks for the answer, this helped me fix my issue. A C# script property was None, which was causing the crash.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.