GridFS piping to Express response issue

I'm developing a web application where I store uploaded images inside MongoDB's GridFS. I have a problem trying to pipe the readable stream to the response, as it works sometimes but not every time. All images is stored inside GridFS and none of the files are corrupt as I'm able to extract the file with mongofiles and view it and the image looks exactly like the uploaded one.

Piping to the response works for some images, but some don't and I am pulling my hair off about this - I can't pinpoint the issue.

I am using gridfs-stream (1.1.0) with ExpressJS (4.0.0) and here's the response route:

exports.show = function (req, res, next) {
  var id = req.params.id;
  GridFS.exist({ _id: id }, function (err, exist) {
    if (err) return handleError(err);
    if (!exist) return res.send(404);
    try {
      var readStream = GridFS.createReadStream({ _id: gridId }).pipe(res);
    } catch (err) {
      return res.send(500, err);
    }
  });
};

And here's the upload route:

exports.create = function (req, res, next) {
  var mime = req.files.file.mimetype;
  var image = req.files.file.path;
  var filename = req.files.file.originalname;

  var writeStream = GridFS.createWriteStream({
    filename: filename,
    mode: 'w',
    content_type: mime
  });
  writeStream.on('close', function (file) {
    console.log(file);
    return res.json(200, { status: 'success', url: '/api/images/' + file._id });
  });
  fs.createReadStream(image).pipe(writeStream);
};

Now as I mentioned, this works for some images, but not every image. I'm using Node 0.12.0 and MongoDB 2.6.8

Tell me if you need any additional information and I'll try to provide it.