I am trying to extract all Orders and my app has read_all_orders permission too.
We generally use a timestamp to filter our queries. the filter criteria is like updated_at_min >= xyz and update_at_min < abc timestamp value.
First we get a count say C1,
During extraction we get a different count (C2) (with C2 being less than C1). This is expected because some records might have been modified.
After extraction we again do a count with same query parameters. (C3). Now C3 is greater than C2.
This is somewhat surprising.