Answering #17 (comment) :
The initData should have the keys as expected for clearKey regardless if we need them or not. This points to a problem with the initData the UA is providing. I suspect that you are using a different EME version other than 0.1b. That would explain why your initData is not the expected initData.
The story begins when I am fixing a problem with PlayReadyH264Video EME test as we were selecting the wrong decryptor. This is irrelevant for now as when I encountered this problem I stashed that code and just forced the selection of the PlayReady decryptor when I hit the JS issue and later the 500. Let's forget about this now then.
I am using v0.1b here, I am not building anything else.
How is the initData going to have the keys expected for ClearKey when we are providing PlayReady initData? FTR: The initData, the are providing for the PR engine, the generated key request and the server answer can be found at http://pastebin.com/neLhSDr4 . Of course this is after applying the fix I provided at #17, otherwise I would get no generateKeyRequest call.
I also was not able to reproduce the 500s on the license server. Can you provide more information with how you are running the tests or if you have made any modifications.
You have the info about the 500 on the pastebin link above.
I am running the following link for the tests http://mylocalipaddress/mstest/2016.html?enablewebm=false&command=run&test_type=encryptedmedia-test&tests=16 which contains changes at http://pastebin.com/w5tSPvsm . As you can see it is only the fix and some useful debugging (part of it was submitted, some was rejected and some accepted and reverted later, but I still find it useful).
I would be happy to look into this further but I need some more information on the failure. A complete stacktrace would be helpful, information on the UA EME version, and information about the 500 on the license server.
Info about the 500, you have it already. For UA EME version we run WebKitForWayland on a Raspberry Pi 2. I don't know what you mean by stacktrace? JS stacktrace? It is difficult to get one cause of having an embedded device but I can tell you that the get onneedkey event handler, then generateKeyRequest is called, that triggers onkeymessage handler that calls licenseManager.acquireLicense that ends up calling licenseManager.requestLicense that answers that I told you and that ends up calling the callback that calls video.addKey with the 500 answer.
At the moment I don't have an immediate issue with the fix you are proposing but I think it is a red herring for the problem you are experiencing. I'm closing this request as a result. Please feel free to file a bug report so we can analyze this problem further.
I opened this issue then. Let's see if it is a red herring or not by analyzing the problem further :)