WebGL Crash On Startup

I have a simple game that works fine on webplayer and standalone, but the web gl version gives a mysterious error on startup:

Web GL Startup Error

An error occured running the Unity content on this page. See your browser’s JavaScript console for more info. The error was:
uncaught exception: abort(-1) at jsStackTrace@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:996:12
stackTrace@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1010:21
abort@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2626208:43
_pthread_create@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:9093:2
_ZN6il2cpp2os10ThreadImpl3RunEPFvPvES2 [il2cpp::os::ThreadImpl::Run(undefined?F?, void, void)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2281338:47
_ZN6il2cpp2os6Thread3RunEPFvPvES2 [il2cpp::os::thread::Run(undefined?F?, void, void)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2496813:9
dynCall_iiii@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2559871:9
invoke_iiii@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:16364:10
__ZN6il2cpp6icalls8mscorlib6System9Threading6Thread15Thread_internalEP12Il2CppThreadP14Il2CppDelegate [il2cpp::icalls::mscorlib::System::Threading::thread::Thread_internal(Il2CppDelegate?)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1601585:6
_Thread_Thread_internal_m18083@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2481805:9
_Thread_Start_m13705@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1818160:7
_Scheduler__ctor_m18115@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1892310:2
_Scheduler__cctor_m18116@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2489496:2
_Z24RuntimeInvoker_Void_t668P10MethodInfoPvPS1 [RuntimeInvoker_Void_t668?1(void
, undefined?S?)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2550142:2
dynCall_iiii@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2559871:9
invoke_iiii@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:16364:10
__ZN6il2cpp2vm7Runtime9ClassInitEP8TypeInfo [il2cpp::vm::Runtime::ClassInit(TypeInfo?
)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1164892:3
_Timer__cctor_m18124@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2340660:4
_Z24RuntimeInvoker_Void_t668P10MethodInfoPvPS1 [RuntimeInvoker_Void_t668?1(void**, undefined?S?)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2550142:2
dynCall_iiii@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2559871:9
invoke_iiii@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:16364:10
__ZN6il2cpp2vm7Runtime9ClassInitEP8TypeInfo [il2cpp::vm::Runtime::ClassInit(TypeInfo?
)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1164892:3
dynCall_vi@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2611205:2
invoke_vi@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:16220:3
_Timer_set_Enabled_m4487@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1413527:10
_Root__cctor_m2296@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1580700:2
_Z24RuntimeInvoker_Void_t668P10MethodInfoPvPS1 [RuntimeInvoker_Void_t668?1(void**, undefined?S?)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2550142:2
dynCall_iiii@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2559871:9
invoke_iiii@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:16364:10
__ZN6il2cpp2vm7Runtime9ClassInitEP8TypeInfo [il2cpp::vm::Runtime::ClassInit(TypeInfo?
)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1164892:3
_GameController_Awake_m2186@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1552252:4
_Z24RuntimeInvoker_Void_t668P10MethodInfoPvPS1 [RuntimeInvoker_Void_t668?1(void**, undefined?S?)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2550142:2
dynCall_iiii@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2559871:9
invoke_iiii@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:16364:10
__ZN6il2cpp2vm7Runtime6InvokeEP10MethodInfoPvPS4_PP12Il2CppObject [il2cpp::vm::Runtime::Invoke?4(void**, undefined?S?
)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2190345:7
_il2cpp_runtime_invoke@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2540262:9
__Z20il2cpp_invoke_method21ScriptingMethodIl2CppP15ScriptingObjectP18ScriptingArgumentsPP18ScriptingExceptionb [il2cpp_invoke_method?2()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2291682:8
__ZN19ScriptingInvocation6InvokeEPP18ScriptingExceptionb [ScriptingInvocation::Invoke(bool**)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1788627:7
__ZN19ScriptingInvocation6InvokeEPP18ScriptingException [ScriptingInvocation::Invoke(ScriptingException?**)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2549042:9
__ZN25ScriptingInvocationNoArgs13InvokeCheckedEv [ScriptingInvocationNoArgs::InvokeChecked()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2354954:7
__ZN13MonoBehaviour12AddToManagerEv [MonoBehaviour::AddToManager()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1391942:4
__ZN9Behaviour13AwakeFromLoadE17AwakeFromLoadMode [Behaviour::AwakeFromLoad?1()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2230446:4
__ZN13MonoBehaviour13AwakeFromLoadE17AwakeFromLoadMode [MonoBehaviour::AwakeFromLoad?1()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1013666:4
__ZN18AwakeFromLoadQueue28InvokePersistentManagerAwakeEPNS_4ItemEj17AwakeFromLoadMode [AwakeFromLoadQueue::InvokePersistentManagerAwake?1(AwakeFromLoadQueue::Item*, unsigned int)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1772467:4
__ZN18AwakeFromLoadQueue30PersistentManagerAwakeFromLoadEv [AwakeFromLoadQueue::PersistentManagerAwakeFromLoad()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2249101:3
__Z23CompletePreloadMainDataR18AwakeFromLoadQueue [CompletePreloadMainData(AwakeFromLoadQueue?&)]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1939315:2
__ZN18LoadSceneOperation19IntegrateMainThreadEv [LoadSceneOperation::IntegrateMainThread()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2063478:3
__ZN14PreloadManager26UpdatePreloadingSingleStepENS_21UpdatePreloadingFlagsE [PreloadManager::UpdatePreloadingSingleStep?N()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1727640:2
__ZN14PreloadManager35WaitForAllAsyncOperationsToCompleteEv [PreloadManager::WaitForAllAsyncOperationsToComplete()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2404772:3
__Z21PlayerStartFirstScenev [PlayerStartFirstScene()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1805376:2
__Z20PlayerLoadFirstScenev [PlayerLoadFirstScene()]@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2102370:81
_main@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:1095187:2
asm._main@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2624227:9
callMain@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2626120:13
doRun@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2626156:40
run/<@file:///F:/Projects/ClickyCube/Builds/Web%20GL/Development/Web%20GL.js:2626165:4

In case that’s not clear, I’ve also uploaded a screenshot of the web page.

Can anyone tell me what caused this? Do we have an ETA on when the Web GL player will be stable and fast?

I’m always having to tell my beta testers ‘Just use Firefox.’ I wish I could offer them a different option.

Are you using threads ? If so, be aware that for the time being they are not supported on this platform.

No, but I am making heavy use of coroutines, and dynamically loaded resources from the resources folder. Could either one of those cause this? Plus I have static class methods.

Wait! I have one thread, in a non-Unity part of the code. I forgot about that! Let me go solve the problem without it and see if that fixed it, I’ll get back to you with the results.

OK, it wasn’t threading per se, but I was using a native C# timer. I removed that, and it started working.

Thanks for your helpl!

For those wondering, I converted the static code that had been running on a native C# timer, to a normal Component attached to a GameObject, and used its Update function instead.

That makes sense as the Timer internally uses a thread.