My guess is the unload function is giving you some grief. When you do a findOne, the var project becomes reactive and any updates to it (like the update you do right below it) are observed. You don't actually need to do the findOne, just update directly since the id is in the params. Try
unload: function() {
// need to increment views value by one
projectDocs.update(this.params._id,
{$inc: {views: 1}}
);
}
});
Edit: actually you are probably better off putting the update into the after hook rather than unload, because the unload might not get called if a user closes the window or something, whereas the after will record the view as long as the action function executed.