IE11 Error: Unexpected call to method or property access on call to gl.linkProgram

Hi,

We have an application that uses Cesium 1.39. Unfortunately our client is getting an error when they access it.

They get this error:
Error: Unexpected call to method or property access.
With a stack trace with the top line of code:
Cesium.js:511:3888

As a test I had them access https://cesiumjs.org/ to rule out our application code and they said they get the same "Error: Unexpected call to method or property access".

Looking up the minified Cesium.js code, that line/col 511:3888 seems to be e.linkProgram(l); which searching the 1.39 source code seems to be Source/Renderer/ShaderProgram.js gl.linkProgram(program) inside the method createAndLinkProgram(gl, shader).
So something weird going on with WebGL in the client's environment? That method has already done a bunch of other work on that gl object before it gets to linkProgram and falls over.

This is happening to many machines at the client's site. I've been able to get information from 2 of the affected machines.

One is Windows 7, the other hasn't been confirmed yet.
Both use IE11, one is version 11.0.9600.18837 the other is 11.0.9600.18893.
Both machines have run the webglreport.com, which I've got screenshots but can't attach them here by the looks.
Both reports come back identically:
"This browser supports webgl 1"
GL Version: WebGL 0.94
Shading Language Version: WebGL GLSL ES 0.94
Unmasked Renderer: Intel(R) HD Graphics 530
Major Performance Caveat: No

These WebGL reports are almost identical to my own machine (which works fine with IE11 of course!), the only slight difference being I have Intel® HD Graphics 520.

I'm a bit unsure how to proceed with resolving this now. I don't know if its something awry in the Cesium code or something weird in the way the client's environment is setup that goes deeper than what the WebGL report shows.

Thanks in advance for your time, any suggestions would be gratefully received!

Cheers,
Bruce.

Hi there,

For a little more context in tracking down what’s going on here, do they also get an error when seeing the 1.39 Hello World app? If not, could you perhaps create a Sandcastle example showing a snippet of code to replicate?

Thanks,

Gabby

Hi Gabby, thanks for the reply. A user on one of the impacted IE11 environments was able to confirm for me that the 1.39 Hello World app you linked gives the same error:

An error occurred while rendering. Rendering has stopped.
Error: Unexpected call to method or property access.
Error: Unexpected call to method or property access.
at f (http://cesiumjs.orq/releases/1.39/Build/Cesium/Cesium.js:511:3888)
at y (http://cesiumjs.orq/releases/1.39/Build/Cesium/Cesium.js:511:6704)
at d.prototype._bind (http://cesiumjs.orq/releases/1.39/Build/Cesium/Cesium.js:511:7721)
at V (http://cesiumjs.orq/releases/1.39/Build/Cesium/Cesium.js:535:21394)
at k.prototype.draw (http://cesiumjs.orq/releases/1.39/Build/Cesium/Cesium.js:535:25031)
at n.prototype.execute (http://cesiumjs.orqtreleases/1.39/Build/CesiumiCesium.js:510:8494)
at p.prototype.execute (http://cesiumjs.orq/releases/1.39/Build/CesiumiCesium.js:534:24161)
at r.prototype.execute (http://cesiumjs.orq/releases/1.39/Build/CesiumiCesium.js:534:22657)
at qe (http://cesiumjs.orqtreleases/1.39/Build/CesiumiCesium.js:554:5536)
at Je (http://cesiumjs.orqtreleases/1.39/Build/CesiumiCesium.js:554:9531)

Thanks,
Bruce.

sorry I used a free online OCR tool to extract the stack trace text out of the screenshot the user sent me, I just realised after I posted that it mangled some of the text (eg .org has come out as .orq). But the important parts of the stacktrace (the line/character numbers) are correct at least, phew.

Thanks Bruce! We just fixed a bug in IE11 in the latest release (#6169). Is it possible for you to update to 1.42?

I asked one of the impacted users to access the 1.42 hello world (http://cesiumjs.org/releases/1.42/Apps/HelloWorld.html)
to quickly see if that will fix their issue, unfortunately they are still getting the same error message, albeit with a slightly different stack trace of course:

An error occurred while rendering. Rendering has stopped.
Error: Unexpected call to method or property access.
Error: Unexpected call to method or property access.
at f (http://cesiumjs.org/releases/1.42/Build/Cesium/Cesium.js:497:25372)
at y (http://cesiumjs.org/releases/1.42/Build/Cesium/Cesium.js:497:28188)
at d.prototype. bind (http://cesiumjs.org/releases/1.42/Build/Cesium/Cesium.js:497:29205)
at V (http://cesiumjs.org/releases/1.42/Build/Cesium/Cesium.js:523:2206)
at k.prototype.draw (http://cesiumjs.org/releases/1.42/Build/Cesium/Cesium.js:523:5843)
at n.prototype.execute (http://cesiumjs.org/releases/1.42/Build/Cesium/Cesium.js:496:30016)
at p.prototype.execute (http://cesiumjs.org/releases/1.42/Build/Cesium/Cesium.js:522:4980)
at r.prototype.execute (http://cesiumjs.org/releases/1.42/Build/Cesium/Cesium.js:522:3476)
at je (http://cesiumjs.org/releases/1.42/Build/Cesium/Cesium.js:544:28363)
at Ke (http://cesiumjs.org/releases/1.42/Build/Cesium/Cesium.js:545:361)

Bruce-
Can these users try another browser? It sounds like the GPU hardware may be the culprit, but might it be the IE11 browser’s support for WebGL?

I’ve given up on IE11 due to it’s lack of support for javascript promises.

Best regards-

Jon