Skip to content

Map crashes in v3.21.0 with many Pixel devices #13651

@JamesChevalier

Description

@JamesChevalier

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 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

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions