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
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)
-
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
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Articulation Body with 'Revolute' Joint Type has erratic behavior when Upper Limit is set to above 360
- WebGL Player fails to render Scene when Terrain with Detail Mesh is added and WebGPU Graphics API is used
- Inconsistent errors are logged when different types are passed into the Query "Q<>" method in UIToolkit and the ancestor VisualElement is null
- Crash on GetMaterialPropertyByIndex when opening a specific Scene
- Discrepancies in the styling are present when using a TSS file instead of a USS file in custom EditorWindow
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.