@Nullable
    public static Throwable pendingThrowable(ClientRequestContext ctx) {
        requireNonNull(ctx, "ctx");
        return ctx.attr(CLIENT_PENDING_THROWABLE);
    }
Retrieves the pending {@link Throwable} for the specified {@link ClientRequestContext}.
Note that the derived context will also contain this attribute by default, and can fail
requests immediately. The pending {@link Throwable} can be removed by
{@link #removePendingThrowable(ClientRequestContext)}.

<p>For example:<pre>{@code
ClientRequestContext ctx = ...;
Throwable t = ...;
final Throwable t1 = pendingThrowable(ctx);
assert t1 == null;
setPendingThrowable(ctx, t);
final Throwable t2 = pendingThrowable(ctx);
assert t2 == t;
final ClientRequestContext derived = ctx.newDerivedContext(id, req, rpcReq, endpoint);
final Throwable t3 = pendingThrowable(derived);
assert t3 == t;
}</pre>
core/src/main/java/com/linecorp/armeria/internal/client/ClientPendingThrowableUtil.java