How to solve trace(X*A*X*A) in CVX SDP

Now there is a problem about including traces in the constraints, where X is the variable to be solved (variable X(N, N) symmetric;)and A is the constant matrix;For X, a convex LMI has been constructed for it via LMI, but how to handle the calculation of the trace(XAX*A) term?

The results of the matlab run are displayed:
Incorrect use *
Disciplined convex programming error:
Only scalar quadratic forms can be specified in CVX.

trace_dx_dx = trace(temp_dx * temp_dx);

If X*A were symmetric, trace(X*A*X*A) could be rewritten as
square_pos(norm(X*A,'fro')) . But that’s likely not the case.

If A were symmetric, trace(A*X*X*A) could be rewritten as
square_pos(norm(X*A,'fro')) . But that is a different expression than trace(X*A*X*A)

I found a counterexample with X1,X2 symmetric PSD, A symmetric, and evaluating also at X3=.5(*X1+X2), showing trace(X*A*X*A)is non-convex (of course it is trivially convex in the real scalar X,A case).