"eventNumber should be non negative" with write operations denied access

I've recently upgraded to EventStore 4.0.1 in our test environment and am seeing seemingly spurious errors. Net result is - an append operation is denied access, with the following logged in EventStore:

I  [00001,29,16:59:11.545] Error during processing CheckStreamAccess(<redacted>, ) request.
I  eventNumber should be non negative.
I  Parameter name: eventNumber

I  [00001,37,16:59:41.663] Error during processing CheckStreamAccess(<redacted>, ) request.
I  eventNumber should be non negative.
I  Parameter name: eventNumber

The problem appears to simply go away on its own after a large number of retries.

We're using the ESJC Java client.

Any ideas? Code or framework versions have not changed on our end, so this appear to be some type of issue with EventStore 4 - we were previously on 3.7.0 and this is the first time I've observed this.

Cheers,
Kristian
  1. What version of Event Store did you upgrade from?

  2. Would you be willing to provide us with logs?

  3. Did you observe anything else in the logs related to the stream such as a hash collision?

It’s likely that the write did not succeed but probably gave up after a number of retries.

If you are seeing a hash collision for this particular stream for which the write failed, you have 2 options.

  1. Adjust the hash collision read limit (Default: 100) to say 300

  2. Rebuild your indexes so that hash collisions are unlikely to occur. The process is documented here: http://docs.geteventstore.com/server/4.0.0/64-bit-index/

Will put up a card in the backlog to provide a better error if possible.

PS: If you upgraded from any version of Event Store prior to 3.8.1 to 4.0.0, you would have likely not run into this situation because 3.8.1 introduced the hash collision read limit.