@Override
    public InternalCompletableFuture<ClientMessage> exceptionally(@Nonnull Function<Throwable, ? extends ClientMessage> fn) {
        return super.exceptionally(new CallIdTrackingFunction(fn));
    }
@Test
    public void test_exceptionally() throws Exception {
        CompletableFuture nextStage = invocationFuture.exceptionally((t) -> response);
        invocationFuture.completeExceptionally(new IllegalStateException());

        assertEquals(response, nextStage.get(ASSERT_TRUE_EVENTUALLY_TIMEOUT, TimeUnit.SECONDS));
        verify(callIdSequence).forceNext();
        verify(callIdSequence, times(2)).complete();
    }