I too have had the same issue, which has been occurring since geometryEngine's introduction in 3.13. I hadn't noticed (and therefore can't verify) the try/catch issue since my code doesn't have any of those clauses around this operation. My code executes the combine operation inside of a callback from a QueryTask, so there's probably a try/catch somewhere up the call stack in the JavaScript API.
Since I'm not the only person this is happening to, I was emboldened to look into this further. Unfortunately, the code for geometryEngine is much too obfuscated to readily understand what's going on, but here's the function where things foul up:
b.prototype.iL=function(a){
for(var d=[],c=[],h=this.sn,l=b.bc(h),g=0;g<l.length;g++){
var m=l,n=h;
if(this.Fc||1E4<n.hq&&1<n.Ci.length){
this.bp-=n.Ci.length;
for(this.Qo-=n.Ci.length;0<n.Ci.length;)
d.push(n.Cv().hw),n.OQ();
c.push(m)
}
}
for(g=0;g<c.length;g++)
delete h[c];
return d
};
The error is thrown when comparing if 1E4 is less than n.hq, and occurs because n is undefined. If we look further up, we see n was set to the value of h...that is, an element of some array. In my case, h was an array with a length of 4, but elements with index 0, 1, and 2 were undefined. However, this code wrongly assumes all the elements in the array it references are defined...hence the error.
I use a locally hosted version of the API, and so I tweaked it a little to check for a valid value of n before proceeding.
Therefore, the original code (which you can ctrl-f to find):
if(this.Fc||1E4<n.hq&&1<n.Ci.length)
became
if((n)&&(this.Fc||1E4<n.hq&&1<n.Ci.length))
This appears to have fixed the problem, although I haven't performed any rigorous testing...as such, if you try this, proceed with caution. Also, if you do, you'll probably need to delete temporary internet files before reloading your app to ensure you get the updated version.