Sometimes querying view with 'stale: false' not triggering changes

var config = require('lib/config');
var couchbase = require('couchbase');
var async = require('async');

var document = 'dev_default';
var viewName = 'test';

var database;

async.waterfall([
    function(callback) {
        database = new couchbase.Connection({
            'host': config.get('database:host'),
            'bucket': config.get('database:bucket')
        }, function(err) {
            if (err) {
                console.log('Can\'t connect to database: %s', err);
                callback(err);
            } else {
                callback(err);
            }
        });
    },
    function(callback) {
        //Removing all old data
        var view = database.view(document, viewName, {stale: 'false'});
        view.query(function(err, data) {
            if(err) {
                console.log('Error during fetching all keys: %s', err);
                callback(err);
            } else {
                var keys = new Array();
                for(var id in data) {
                    keys.push(data[id].key);
                }
                callback(null, keys);
            }
        });
    },
    function(keys, callback) {
        if(keys.length > 0) {
            console.log('Will be removed %s records', keys.length);
            database.removeMulti(keys, {}, function(err) {
                if(err) {
                    console.log('Error during removing keys: %s', err);
                    callback(err);
                } else {
                    callback();
                }
            });
        } else {
            //Nothing to delete
            callback();
        }
    },
    function(callback) {
        var data = {};
        data['key_1'] = {value: {id: 1, name: '1'}};
        data['key_2'] = {value: {id: 2, name: '2'}};
        data['key_3'] = {value: {id: 3, name: '3'}};
        data['key_4'] = {value: {id: 4, name: '4'}};
        data['key_5'] = {value: {id: 5, name: '5'}};
        data['key_6'] = {value: {id: 6, name: '6'}};
        data['key_7'] = {value: {id: 7, name: '7'}};
        database.setMulti(data, {spooled: true}, function(err) {
            if(err) {
                console.log('Error during adding data: %s', err);
                callback(err);
            } else {
                callback();
            }
        });
    },
    function(callback) {
        //Fixing changes
        var view = database.view(document, viewName, {stale: 'false', limit: 1});
        view.query(function(err, data) {
            if(err) {
                console.log('Error during indexing view: %s', err);
                callback(err);
            } else {
                callback();
            }
        });
    },
    function(callback) {
        //Checking results
        var view = database.view(document, viewName);
        view.query(function(err, data) {
            if(err) {
                console.log('Error during getting view: %s', err);
                callback(err);
            } else {
                var result = new Array();
                for(var id in data) {
                    result.push(data[id].value);
                }
                if(result.length != 7) {
                    callback(new Error('Expecting 7, got ' + result.length));
                } else {
                    callback();
                }
            }
        });
    },
    function(callback) {
        //Adding one more record
        database.set('key_8', {id: 8, name: '8'}, function(err) {
            if(err) {
                console.log('Error during adding record: %s', err);
                callback(err);
            } else {
                //Fixing changes, indexing view
                var view = database.view(document, viewName, {stale: 'false', limit: 1});
                view.query(function(err, data) {
                    if(err) {
                        console.log('Error during second indexing view: %s', err);
                        callback(err);
                    } else {
                        callback();
                    }
                });

                callback(err);
            }
        });
    },
    function(callback) {
        //Checking results
        var view = database.view(document, viewName);
        view.query(function(err, data) {
            if(err) {
                console.log('Error during getting view: %s', err);
                callback(err);
            } else {
                var result = new Array();
                for(var id in data) {
                    result.push(data[id].value);
                }
                if(result.length != 8) {
                    callback(new Error('Expecting 8, got ' + result.length));
                } else {
                    callback();
                }
            }
        });
    }
], function(err) {
    if(err) {
        console.log('Test failed: %s', err);
    } else {
        console.log('Test passed');
    }
    process.exit(0);
});

</code>

View code:

<code>
function (doc, meta) {
  if(meta.type == "json" && meta.id.indexOf("key") == 0) {
  	emit(meta.id, meta.id);
  }
}