iron-router's waitOn used to be broken ( it didn't actually waitOn ) in 1.0 'subscriptions' is equivalent to the old waitOn. However, using waitOn turned up issues in our code. specifically, we were stopping subscriptions if there was a permission error. As a result, those subscriptions where never ready(). So the page was never allowed to load.

Since most of our code has not been vetted to see if it can handle the new blocking behavior of waitOn, we are using subscription on the Routes.

We will also look at handling permission failures better. this.error() in the Meteor.publish() would give the client a onError callback.