Callbacks not firing on Meteor method calls

Upgrading an app from version 1.1.0.2 to 1.2.1, all Meteor.calls no longer have their callbacks firing. E.g. assume I’ve defined in my server directory:

Meteor.methods({
  foo: function(text) {
    console.log(text);
    return "bar";
  }
});

Performing the following yields a server-side console log (that) but nothing on the client, i.e. no client-side log output:

Meteor.call("foo", "that", function(error, result) {
  console.log("returned");
  console.log(error, result);
})

Even throwing an error in the server method does not return an error object (the first parameter of the callback).

Finally, I tried calling a non-existent function foo2 and get the standard client-side “Method not found” error, so I know my Meteor server methods are defined and recognized somewhere.

Reverting back to v1.1.0.2 of Meteor… the problem goes away. Re-upgrading to 1.2.2, the problem comes back.

Note that on other projects, I do not seem to have this problem (i.e. it’s likely not my computer). It’s just this one (very critical) project repo.

Please help.

Btw, I tried further updating to 1.3.5 and even 1.4, in hopes there was a downstream patch, but that didn’t solve the problem.

Never mind.

I figured something must have been getting in the middle of the Method.call and immediately suspected an installed package. What would want to get in the middle but a monitoring package? This leads to kadira.

Sure enough… problem solved. Updated meteorhacks:kadira to version 2.23.1 and the problem went away.

See: https://github.com/meteorhacks/kadira/issues/181

2 Likes