Meteor 3 upgrade docs: Low level publication API

Just wanted to drop a quick note to the Meteor team that the current Meteor 3 upgrade docs are missing the info that the low-level publication API has changed slightly, which is an undocumented breaking change (or at least, I could not find the info there):

Cursor.observe() now returns a Promise<LiveQueryHandle>, not a LiveQueryHandle. Thus, when you want to call handle.stop() (without having awaited this Promise), the stop() call will fail.

Not a biggy, since not many people might use the low-level syntax, but our code broke at this point, crashing the server. So I thought I would leave a note about this.

(The change log mentions: “cursor.observe now returns isReady and isReadyPromise wich indicates if the cursor is ready and if the callbacks are have been called.” But I’m not sure if this is even the same thing. And even if, I would have expted the change in the “breaking changes” list.)

2 Likes