if there is an error, the callback will be called twice, which is probably incorrect. good practice is to use return when invoking a callback, e.g:
if (err) {
    return callback(err, false);
}