Views are updated asynchronously. There is no atomic guarantee that after I insert an item, it will show up in affecting Views if I query them immediately after. Currently, it will only show up when the value hits the hard disk. Stale=false currently means "among all the values that have already hit the disk, do not give me stale data". I have been reading your forums and a lot of users seem to be getting confused by this.
I would suggest one of the two things:
1) make stale=false force get everything in the working set. i don't see why you have to wait until the value hits the disk before you are able to include it in a view... but it probably has to do with something internal. perhaps a redesign? also: what happens if i use a memcached bucket? can you even use views? there is no persist stage with memcached buckets so when would you be able to query the view? (i have no current interest in using memcached buckets but am just wondering)
2) stop using the word stale altogether. change it to something along the lines of "not outdated but already persisted data" (that is what your current implementation of stale means)