custom exception for optimistic concurrency