Map crashes in v3.21.0 with many Pixel devices
bug :lady_beetle:auto-triaged
### mapbox-gl-js version
3.21.0
### Browser and version
Various browsers across various Pixel devices, no iOS reports
### Expected behavior
The page shouldn't crash 😄
### Actual behavior
The page crashes ☹️
### Link to the demonstration
https://super-neato.s3.us-east-1.amazonaws.com/mapbox3.21.0.html
### Steps to trigger the unexpected behavior
The [reports from my users](https://community.citystrides.com/t/citystrides-crashing-phone-browsers/29849) suggest that the page crashes after attempting to zoom/pan. It doesn't sound like it takes much to produce the crash. The reports mention several browsers, but they're mostly Pixel devices:
* Pixel 8 / Android 16 / Opera, Chrome, and Firefox
* Pixel 7 / Android 16 / Firefox and Chrome
* Pixel 8
* Pixel 8A
* Pixel 9a
* Samsung/Android
I got one report of a Pixel 10 Pro _not_ having issues.
There weren't any reports from iOS users.
On my 2023 MacBook Pro (Apple M2 Max, 32GB RAM) there's a fair amount of stuttering on the initial zoom out to the globe view, but after the first zoom out things go smoothly. At about the point where the stuttering occurs, I noticed the browser log output I've shared below - I don't know how relevant it is to the crashing issue.
I deployed a version of my website that downgrades to Mapbox GL JS v3.20.0 and everyone reported that this resolved their issue.
### Relevant log output
```shell
Ze @ util.ts:513
ao @ cutoff.ts:53
(anonymous) @ draw_terrain_raster.ts:304
renderToBackBuffer @ terrain.ts:862
renderBatch @ terrain.ts:985
render @ painter.ts:1306
_render @ map.ts:4570
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_render @ map.ts:4679
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
requestAnimationFrame
frame @ browser.ts:39
_triggerFrame @ map.ts:4997
triggerRepaint @ map.ts:4991
_requestFrame @ handler_manager.ts:674
_triggerRenderFrame @ handler_manager.ts:684
handleEvent @ handler_manager.ts:383
(anonymous) @ handler_manager.ts:677
run @ task_queue.ts:51
_render @ map.ts:4510
(anonymous) @ map.ts:5003
```
关闭于 2026-04-08 3 条评论