private void tryFailSessionPromise(Throwable cause) {
        if (sessionTimeoutFuture != null) {
            sessionTimeoutFuture.cancel(false);
        }
        if (!sessionPromise.isDone()) {
            sessionPromise.tryFailure(cause);
        }
    }
Tries to complete the {@link #sessionPromise} if the session is ready to serve.

@return {@code true} if the {@link #sessionPromise} has been completed successfully or exceptionally.
        {@code false} if the {@link #sessionPromise} is still incomplete.
core/src/main/java/com/linecorp/armeria/client/HttpSessionHandler.java