I am not sure I understand the purpose of making a method return a promise : as far as I can tell the return value of methods is undefined. The promise needs to be in the callback given to Meteor.call(method, callback) to transform it into an async function that can be wait on.