Правильный способ сделать это - не смотреть на объект ошибки, а поймать ошибку в нужной точке потока.
например, вы можете иметь
.then(function(stream) { ...},
(err) => { gumErrored = true; throw(err) ; }
)
Таким образом, вы все равно сможете справиться с этим окончательным уловом (при условии, что это то, что вам нужно), проверив, был ли флаг gumErrored
истинным, но с уверенностью относительно источника ошибки.
(Вы можете пропустить одно обещание в цепочке, введя return myPeerConnection.createAnswer()
в тот же блок)