Context Loss loading large(ish) data in latest update of Chrome.

Skip to first unread message

Philip Taylor

Nov 23, 2021, 2:51:43 PM11/23/21
Hi, we've suddenly started experiencing repeated context loss in Chrome over the last few days, and I did see an update to chrome recently. Chrome stable is on build 96.0.4664.45, which was released last monday.
It's pretty consistent across machines, and seems to occur after loading some bigger datasets. 

If you are curious, you can see the crash happening here: 
You may need to refresh a few times to see the issue.

The issue doesn't occur on Chrome Beta/Dev/Canary, so it looks like a regression they fixed already and is just in Stable.

I've tried debugging the issue to see if I can isolate what causes it, but I feel like I am chasing a ghost and no specific chunk of our code triggers it (that I can see).

Does anyone else see strange behavior in Chrome? Would any of the Chrome team have a suggestion? I anticipate this problem going away within about a month as soon as Chrome 97 makes it to Stable. 

Thanks for any feedback

Zea Homepage
CTO, Zea Inc.

Montréal, Québec

The contents of this e-mail are confidential with all rights reserved to the author. It is illegal to use or divulge this information without authorization. If you have received this e-mail by mistake, please notify me immediately by replying to the e-mail. 

Alexander Rose

Nov 23, 2021, 3:14:40 PM11/23/21
to WebGL Dev List
Hi, we saw a context loss issue in Chrome 96 on Win as well in Mol* ( For our case I was able to pin point it on updating elements buffers bound to a deleted VAO. I created a Chrome bug ( As a workaround I disabled use of VAOs in molstar.


Kai Ninomiya

Nov 23, 2021, 6:56:16 PM11/23/21
Hi Philip,

It's possible this isn't a regression by revision, but by experimental configuration.

Please file an issue on (with the Blink>WebGL component) and include:
- Report from chrome://gpu (includes your GPU and driver config)
- Report from chrome://version (includes the Chrome experiment config)
from BOTH a working and non-working browser version (e.g. as 4 txt files).

-Kai (he/they)

You received this message because you are subscribed to the Google Groups "WebGL Dev List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To view this discussion on the web visit

Philip Taylor

Nov 23, 2021, 7:50:56 PM11/23/21
Thanks Kai and Alexander.

Alexander that was it. I updated our cleanup code to unbind the index buffer when destroying the VAO.

destroy(): void {
const gl =
// Ensure we detach the index buffer before deleting the VAO.
if (this.indexBuffer) {
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null)

I think we can blame :)
with the following change: VertexArray: on destroy, remove observer on element array buffer.

Thanks for your help.

Ken Russell

Dec 2, 2021, 8:36:21 PM12/2/21
Thanks for filing the bug. The bisect might have been wrong (done in reverse) and it looks like 's change actually fixed this, rather than causing it.


Philip Taylor

Dec 6, 2021, 11:56:58 AM12/6/21
oh, that's great! I should apologize to steven for sullying his reputation :).
We deployed fixes to this issue, but it was stressful and we need to plan for this kind of thing. 

Reply all
Reply to author
0 new messages