Comfused with the argument of norm to make the function convex

It seems that the argument of norm() must be affine. But I have tried two cases:
The first one:
cvx_begin
variable x
minimize( norm(pos(x)))
x >= 0
cvx_end
This case produces the following error message:
Cannot perform the operation norm( {convex}, 1 )

and the second one:
cvx_begin
variable x
minimize( norm(exp(x)))
x >= 0
cvx_end
This case works fine and it’s solved.

Although in these cases, the arguments of norm() are not affine, but I think both cases one and two meet the composition rules of DCP, why the first one cannot work and the second one works fine? Or maybe I have some misunderstanding of the rules.
My cvx version is Version 2.2, Build 1148.

BTW, I have checked both norm(pos(x)) and norm(exp(x)) on https://dcp.stanford.edu/analyzer, and I am sure that they are all convex functions.

norm(pos(x)) violates CVX 2.2’s DCP rules. However, I believe that would be accepted by CVX 3.0beta, based on sign-dependent monotonicity which is not exploited in CVX 2.2. Unfortunately, CVX 3.0beta is riddled with bugs, so I don’t recommend using it.

As a workaround in CVX 2.2, you can do the following, even when x >= 0 does not hold.

cvx_begin
variables x(2) t
minimize(norm(t))
pos(x) <= t
<insert other constraints to make the problem less trivial>
cvx_end

norm(exp(x)) apparently is accepted by CVX 2.2 based on being log-affine .This is somewhat obscure, but see Log of sigmoid function

Thanks. I see now.
But why the DCP rules in CVX is not consistent with rules used in https://dcp.stanford.edu/analyzer? Both norm(exp(x)) and norm(pos(x)) are analyzed as convex functions on it.

So the argument of norm() should be affine or log-affine?
But I have tested the following case:

cvx_begin
variable x
minimize( norm(1+exp(x)) )
cvx_end

This case is acceppted with CVX 2.2, but 1+exp(x) is log-convex, not log-affine. Why the convex function pos(x) is not accepted?

Not all convex functions are accepted by CVX. CVXPY accepts more functions (all that convex analyzer accepts?).

Per the CVX3.0beta Users’ Guide http://web.cvxr.com/cvx/beta/doc/dcp.html#sign-dependent-monotonicity

But our experience with implementations found in CVXPY, the Stanford DCP expression
analyzer, and our internal version of CVX suggest that this covers nearly all of the cases CVX users are likely to encounter.

CVXPY was developed after, and in some ways surpassed what was done in CVX. I think the same authors are behind CVXPY and the convex analyzer.

Any log-convex stuff accepted by CVX which does not comply with its DCP convexity rules, should be considered a bonus.

Thanks for your clarification!