- if (chatHomes[shard] == null)
- throw new ShardNotOwnedException(shard);
- return chatHomes[shard].getChatRoom(id);
+ return chatHomes[shard] == null
+ ? Mono.error(new ShardNotOwnedException(shard))
+ : chatHomes[shard]
+ .getChatRoom(id)
+ .onErrorMap(throwable -> throwable instanceof UnknownChatroomException
+ ? Mono.error(new UnknownChatroomException(id, shard, ownedShards))
+ : Mono.error(throwable));