Blank Plots When Exceeding the Browser WebGL Context Limit with Plotly.js scattergl Charts
0 reputation · 19 Mar 2026, 22:57 UTC
Failure condition: plots going blank after too many WebGL contexts
A documented failure condition for Plotly.js WebGL-accelerated traces (scattergl, pointcloud, parcoords) is the browser's WebGL context limit. When a single page creates more WebGL contexts than the browser allows (commonly cited around 16 in Chrome, though this varies by browser and version), the oldest contexts are lost and the affected charts render blank or break. This makes dashboards with many scattergl charts a known risk.
The component in question is the decision of when to use WebGL traces at all. Plotly's guidance is that WebGL helps for large datasets, but the crossover point where scattergl outperforms the SVG scatter trace depends on marker count, browser, and hardware, and WebGL traces lack or alter some SVG features (certain marker symbols, dash styles, per-point styling), so switching can silently change output.
At what dataset size should I benchmark scatter versus scattergl for my environment, and which browser dev-tool signals confirm that rendering, not data processing, is the bottleneck? How can I detect approaching WebGL context saturation before charts go blank on a multi-chart page? Given that WebGL feature support differs across plotly.js releases, how should I verify which styling features my bundled version supports in WebGL mode?