The Meteor docs for Match.Maybe say (emphasis mine):
Matches either undefined , null , or pattern . If used in an object, matches only if the key is not set as opposed to the value being set to undefined or null . This set of conditions was chosen because undefined arguments to Meteor Methods are converted to null when sent over the wire.
And if you try to destructure null, you get a TypeError, the details of which aren’t sent to the client.
So (without seeing the real code) I think that’s what’s going on here
You could move the destructuring into the function body and test for null like so:
newThing: function(thing, options) {
let optionalArray, optionalObject;
if (options != null) ({ optionalArray = [], optionalObject }) = options;
But it might be easier to just skip the destructuring in that case