poki.com - Game fails to fully load, stopping at 80% and blocking users from entering the game
Categories
(Web Compatibility :: Site Reports, defect, P2)
Tracking
(Webcompat Priority:P1, Webcompat Score:8, firefox149 wontfix, firefox150 wontfix, firefox151 verified, firefox152 fixed)
People
(Reporter: bfarkas, Assigned: padenot, NeedInfo)
References
()
Details
(Keywords: webcompat:platform-bug, webcompat:site-report, Whiteboard: [webcompat-source:web-bugs][webcompat:sightline][webcompat:japan][webcompat:core])
User Story
user-impact-score:900 platform:windows,mac,linux,android impact:feature-broken configuration:general affects:all branch:release diagnosis-team:media
Attachments
(6 files, 1 obsolete file)
Environment:
Operating system: Windows 10 / Android
Firefox version: Firefox 149.0 / Firefox Nightly 151.0a1 (2026-04-17)
Steps to reproduce:
- Access: https://poki.com/en/g/doodle-god
- Observe the page
Expected Behavior:
The progress loads until 100% and the game can be started accordingly
Actual Behavior:
Game fails to fully load, stopping at 80% and blocking users from entering the game
Notes:
- Reproduces regardless of the status of ETP
- Reproduces in firefox-nightly, and firefox-release
- Does not reproduce in chrome
Created from https://github.com/webcompat/web-bugs/issues/216331
| Reporter | ||
Updated•1 month ago
|
| Reporter | ||
Comment 1•1 month ago
|
||
Comment 2•1 month ago
|
||
Since nightly and release are affected, beta will likely be affected too.
For more information, please visit BugBot documentation.
Updated•1 month ago
|
Updated•1 month ago
|
Comment 3•29 days ago
|
||
I see a flood of
Uncaught (in promise) DOMException: The buffer passed to decodeAudioData contains invalid content which cannot be decoded successfully.
in the console, so media is probably a good starting point.
Updated•28 days ago
|
Comment 4•22 days ago
|
||
Comment 5•22 days ago
|
||
Comment 6•22 days ago
|
||
Automated reproduction using Playwright headless browsers confirms the Firefox vs Chrome difference:
- Chrome (headless): Game loads fully and displays the main menu (Play, Options, Achievements). See attached
chrome-initial.png. - Firefox (headless): Game fails with "WebGL not detected!" on a black screen. See attached
firefox-initial.png.
Note: In our headless Playwright Firefox environment, WebGL is not available, so the game fails earlier than described in the bug (at the WebGL detection stage rather than reaching 80% loading). On a real Firefox with WebGL support, the game likely gets further but then stalls — likely at the audio loading stage, consistent with the decodeAudioData errors Dennis noted in comment 3.
Console error differences:
- Firefox: Flood of CORS-blocked requests to
stats.doodlegod.com(100+ errors) + CSP violations blockinggoogle-analytics.com. - Chrome: Same
stats.doodlegod.comrequests fail withERR_NAME_NOT_RESOLVEDbut the game loads anyway.
The CORS errors are interesting — Firefox blocks these as CORS failures, while Chrome reports them as DNS resolution failures. Both browsers fail the same requests, but the game handles the failure gracefully only in Chrome. However, since these are just stats/analytics requests, they shouldn't block the game itself.
The root cause on real Firefox with GPU is most likely the decodeAudioData failures as noted in comment 3, causing the loading to hang at 80%.
This is an automated analysis result. If this result is incorrect please add a needinfo and feel free to correct the error.
Comment 7•22 days ago
|
||
Looks like there is an issue with WebGL in headless that only reproduces in Firefox (this is Firefox as embedded by Playwright). Do you happen to know anything about this, Jeff?
Comment 8•20 days ago
|
||
It's not surprising that headless mode has disabled WebGL
Comment 9•20 days ago
|
||
The attached file is not playing in Firefox, but fine in Chrome. Paul, any idea?
Comment 10•20 days ago
|
||
Elisa gets the length right but the audio also doesn't play.
Comment 11•20 days ago
•
|
||
On a debug build I see:
[Child 331150, MediaPDecoder #1] ###!!! ASSERTION: Packet must have gp by now: 'packet->granulepos != -1', file dom/media/ogg/OggCodecState.cpp:552
[331150] Assertion failure: mIsValid (Invalid checked integer (division by zero or integer overflow)), at dist/include/mozilla/CheckedInt.h:316
Stack for the failure is:
#0 __syscall_cancel_arch () at ../sysdeps/unix/sysv/linux/x86_64/syscall_cancel.S:56
#1 0x00007ff0aa69339c in __internal_syscall_cancel (a1=a1@entry=0, a2=a2@entry=0, a3=a3@entry=140671052061072, a4=a4@entry=140671052061072, a5=a5@entry=0, a6=a6@entry=0, nr=230) at cancellation.c:49
#2 0x00007ff0aa6e3452 in __GI___clock_nanosleep (clock_id=<optimized out>, clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7ff088169990, rem=rem@entry=0x7ff088169990) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#3 0x00007ff0aa6ef537 in __GI___nanosleep (req=req@entry=0x7ff088169990, rem=rem@entry=0x7ff088169990) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#4 0x00007ff0aa701b8e in __sleep (seconds=0) at ../sysdeps/posix/sleep.c:55
#5 0x00007ff097d0f950 in common_crap_handler (signum=signum@entry=11, aFirstFramePC=<optimized out>) at ./../../../toolkit/xre/nsSigHandlers.cpp:104
#6 0x00007ff097d0fa6e in child_ah_crap_handler (signum=11) at ./../../../toolkit/xre/nsSigHandlers.cpp:118
#7 0x00007ff0993f00b9 in WasmTrapHandler (signum=11, info=0x7ff088169bf0, context=0x7ff088169ac0) at ./../../../../js/src/wasm/WasmSignalHandlers.cpp:819
#8 0x00007ff0aa63e2d0 in <signal handler called> () at /usr/lib/libc.so.6
#9 0x00007ff094d31412 in MOZ_CrashSequence (aAddress=0x0, aLine=316) at ../../dist/include/mozilla/Assertions.h:261
#10 mozilla::CheckedInt<long>::value (this=<optimized out>) at ../../dist/include/mozilla/CheckedInt.h:314
#11 mozilla::media::TimeUnit::IsPositiveOrZero (this=<optimized out>) at ./../../../dom/media/TimeUnits.cpp:169
#12 0x00007ff09508c0c0 in mozilla::OggCodecState::PacketOutAsMediaRawData (this=0x7ff0883e9c00) at ./../../../../dom/media/ogg/OggCodecState.cpp:267
#13 0x00007ff09509b976 in mozilla::OggTrackDemuxer::NextSample (this=this@entry=0x7ff086d464f0) at ./../../../../dom/media/ogg/OggDemuxer.cpp:1377
#14 0x00007ff09509c984 in mozilla::OggTrackDemuxer::GetSamples (this=0x7ff086d464f0, aNumSamples=1) at ./../../../../dom/media/ogg/OggDemuxer.cpp:1450
#15 0x00007ff094c768ac in mozilla::MediaFormatReader::DemuxerProxy::Wrapper::GetSamples(int)::{lambda()#1}::operator()() const (this=<optimized out>) at ./../../../dom/media/MediaFormatReader.cpp:700
#16 mozilla::detail::ProxyFunctionRunnable<mozilla::MediaFormatReader::DemuxerProxy::Wrapper::GetSamples(int)::{lambda()#1}, mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true> >::Run()
(this=0x7ff086d05830) at ../../dist/include/mozilla/MozPromise.h:1836
#17 0x00007ff09076518d in mozilla::TaskQueue::Runner::Run (this=0x7ff086d46610) at ./../../../xpcom/threads/TaskQueue.cpp:309
#18 0x00007ff09077d60f in nsThreadPool::Run (this=0x7ff086d64820) at ./../../../xpcom/threads/nsThreadPool.cpp:442
#19 0x00007ff09077556c in nsThread::ProcessNextEvent (this=0x7ff086d09240, aMayWait=<optimized out>, aResult=0x7ff086720a3f) at ./../../../xpcom/threads/nsThread.cpp:1173
#20 0x00007ff09077ab00 in NS_ProcessNextEvent (aThread=0x7ff0aa80b740 <_IO_stdfile_2_lock>, aThread@entry=0x7ff086d09240, aMayWait=false) at ./../../../xpcom/threads/nsThreadUtils.cpp:465
#21 0x00007ff091358527 in mozilla::ipc::MessagePumpForNonMainThreads::Run (this=0x7ff08695ffc0, aDelegate=0x7ff086720b00) at ./../../../ipc/glue/MessagePump.cpp:297
#22 0x00007ff0912941c2 in MessageLoop::RunHandler (this=0x7ff0aa80b740 <_IO_stdfile_2_lock>) at ./../../../ipc/chromium/src/base/message_loop.cc:364
#23 MessageLoop::Run (this=0x7ff0aa80b740 <_IO_stdfile_2_lock>) at ./../../../ipc/chromium/src/base/message_loop.cc:346
#24 0x00007ff09077116b in nsThread::ThreadFunc (aArg=0x7ff08692b8e0) at ./../../../xpcom/threads/nsThread.cpp:374
#25 0x00007ff0aad584fd in _pt_root (arg=arg@entry=0x7ff086929940) at ./../../../../../nsprpub/pr/src/pthreads/ptthread.c:190
#26 0x000055738c59283e in set_alt_signal_stack_and_start (params=<optimized out>) at ./../../../mozglue/interposers/pthread_create_interposer.cpp:81
#27 0x00007ff0aa69697a in start_thread (arg=<optimized out>) at pthread_create.c:454
Comment 12•20 days ago
|
||
This fixes the issue here. Whether it's correct, you tell me :)
Updated•20 days ago
|
Comment 13•20 days ago
|
||
I have a patch that fixes the playback there and allows me to play the game.
Comment 14•20 days ago
|
||
(In reply to Emilio Cobos Álvarez [:emilio] from comment #8)
It's not surprising that headless mode has disabled WebGL
Can you elaborate why? This is not the case for Chrome headless.
Comment 15•20 days ago
|
||
I forget the exact heuristics, but we disable webgl if we think it's going to have poor performance (no driver etc). We might want to force-enable it for playwright or what not?
Comment 16•20 days ago
|
||
(In reply to Emilio Cobos Álvarez [:emilio] from comment #15)
I forget the exact heuristics, but we disable webgl if we think it's going to have poor performance (no driver etc). We might want to force-enable it for playwright or what not?
Yea, I assume there is a force-enabled pref to override this behavior?
Updated•15 days ago
|
Updated•15 days ago
|
| Assignee | ||
Comment 17•15 days ago
|
||
| Assignee | ||
Comment 18•15 days ago
|
||
Updated•14 days ago
|
Comment 19•14 days ago
|
||
Comment 20•14 days ago
|
||
Comment 21•14 days ago
|
||
Backed out for causing reftest failures
- Backout link
- Push with failures
- Failure Log
- Failure line: TEST-UNEXPECTED-FAIL | dom/media/test/crashtests/bug2032944.html | assertion count 1 is more than expected 0 assertions
Comment 22•14 days ago
|
||
Comment 23•14 days ago
|
||
Comment 24•14 days ago
|
||
Backed out for causing crashtest @failuresbug2032944.html
Updated•14 days ago
|
Comment 25•13 days ago
|
||
Comment 26•13 days ago
|
||
| bugherder | ||
Comment 27•12 days ago
|
||
Padenot, can you consider adding a beta uplift request on this?
Depending on the risk we could take it for Fx151
| Assignee | ||
Comment 28•8 days ago
|
||
Original Revision: https://phabricator.services.mozilla.com/D298318
Updated•8 days ago
|
Comment 29•8 days ago
|
||
firefox-beta Uplift Approval Request
- User impact if declined/Reason for urgency: Web compat: a game doesn't work, because a valid file errors out instead of being decoded.
- Code covered by automated testing?: yes
- Fix verified in Nightly?: yes
- Needs manual QE testing?: no
- Steps to reproduce for manual QE testing:
- Risk associated with taking this patch: low
- Explanation of risk level: Edge case, we have a test.
- String changes made/needed?: none
- Is Android affected?: yes
Updated•8 days ago
|
Updated•8 days ago
|
Comment 30•8 days ago
|
||
| uplift | ||
| Reporter | ||
Comment 31•5 days ago
|
||
Verified, the issue no longer reproduces.
Tested with:
- Browser / Version: Firefox 151.0-candidate build 1
- Operating System: Windows 10
| Reporter | ||
Updated•5 days ago
|
Description
•