applyAsync returns undefined

I am trying applyAsync but it seems to work differently from callAsync: in the case of callAsync I get the value returned by the server as a response, whereas from applyAsync I get undefined. I need to use applyAsync to avoid resending the request in case of failure (noRetry=true). Reading the documentation the two calls should give the same result, only the way of passing the arguments changes. The method resides only on the server-side.

const res = await Meteor.applyAsync('method', [...], {noRetry: true})
// returns undefined
const res = await Meteor.callAsync('method', ...)
// returns rigth result

Has anyone experienced this situation or have I missed something?

From what I can gather applyAsync is still a work in progress. I too ran into problems while putting together a callAsync for validated-method. (validated-method/validated-method.js at master · cluelesscamel/validated-method · GitHub)
It turns out applyAsync, even though it’s async, still takes a callback parameter that will be called with the result it yields.
You can use the link above to see how I turned that into a promise that works on both client and server.