diff --git a/app/assets/javascripts/discourse/models/post_stream.js b/app/assets/javascripts/discourse/models/post_stream.js index 89cb99c4740..b0ede8f3275 100644 --- a/app/assets/javascripts/discourse/models/post_stream.js +++ b/app/assets/javascripts/discourse/models/post_stream.js @@ -649,8 +649,10 @@ Discourse.PostStream = Em.Object.extend({ var closest = null; this.get('posts').forEach(function (p) { - if (closest === postNumber) { return; } - if (!closest) { closest = p; } + if (!closest) { + closest = p; + return; + } if (Math.abs(postNumber - p.get('post_number')) < Math.abs(closest.get('post_number') - postNumber)) { closest = p; diff --git a/app/assets/javascripts/discourse/routes/topic_from_params_route.js b/app/assets/javascripts/discourse/routes/topic_from_params_route.js index f45bdf3d2e1..bc9e62f052c 100644 --- a/app/assets/javascripts/discourse/routes/topic_from_params_route.js +++ b/app/assets/javascripts/discourse/routes/topic_from_params_route.js @@ -22,6 +22,10 @@ Discourse.TopicFromParamsRoute = Discourse.Route.extend({ if (params.nearPost === "last") { params.nearPost = 999999999; } postStream.refresh(params).then(function () { + + // TODO we are seeing errors where closest post is null and this is exploding + // we need better handling and logging for this condition. + // The post we requested might not exist. Let's find the closest post var closestPost = postStream.closestPostForPostNumber(params.nearPost || 1), closest = closestPost.get('post_number'),