Node.js Superagent is not populating results consistently

I have this route that queries an API to get information about the project. It uses super agent to post a get request, passes along some headers with the .set and project_results should contain the data.

Now here is the issue: I can load the page for this particular route/project 20 times... 19 of the times it will work perfectly but randomly it will throw an error:

TypeError: Cannot read property 'creator' of null

This error points out the line: with if(project.creator == req.signedCookies.user_3rb._id) {

So I know it is making it past the: if(project_results.status == '200') {

and since I am looking at the same project over and over and over (and I know all projects have a creator I checked the DB)

my question would be why sometimes does it not find this property of the project_results variable? Its very inconsistent.. I would think project_results is completely populated before going through the code... since its passing the status check we know there is at least some data in the project_results variable..

app.get('/user/projects/:project_id', function(req, res, next) {
    var agent = superagent.agent();
  var project = {};

    project.id = req.params.project_id;

    agent
        .get(apihost + '/api/project/'+project.id)
        .set('api_key', apikey)
        .set('access_token', user.access_token)
        .end(function(project_error, project_results) {

            if (project_error) {
        console.log(project_error);
            }

            if(project_results.status == '200') { 

                project = JSON.parse(project_results.text);

                // Check if we are the owner of the project
                if(project.creator == req.signedCookies.user_3rb._id) { 
                    project.owner = true;
                }


                ......

I'm one of the contributors to superagent.

I'd recommend isolating a test case instead of trying to debug directly in your app.

One simple way is to create a very short express app that always returns a hardcoded, perfect response to the route you're trying to reach - then see if project is still null 1 in 20 times:

var app = express();

app.use(function(req, res, next) {
  res.send({
    // your data hardcoded here
  });
});

app.listen(3000);

If it's still null 1 in 20 times, then please submit it as an issue and I'll check it out. If not, then likely something else is going on - perhaps the data isn't being consistently fetched from the db, or there's a race condition between the fetch and the rendering.