Yep - definitely an issue with DynamoDB local - it consistently returns one less key than it should.

I've documented this, as well as all of the other issues I've run into, here: https://github.com/mhart/dynalite#problems-with-amazons-dynamodb-local

You should note that you can't guarantee on the live instances which keys will be returned and which ones will be unprocessed (I'm guessing it depends on which shards respond first) - but you can add up the total of processed and unprocessed and it should always equal the number you requested.