...
Three internal exceptions: StateStoreClosedException, StateStoreEmptyException, StreamThreadNotRunningException
The internal exception will be wrapped as user's category exception finally. The purpose of the internal exceptions is to distinguish between the different kinds of InvalidStateStoreException. The internal exception will be wrapped as user's category exception finally.
For example, StreamThreadStateStoreProvider#stores() will throw StreamThreadNotRunningException(internal exception). And then the internal exception will be wrapped as StateStoreRetryableException or StateStoreFailException during the KafkaStreams.store() and throw to the user.
...