IBM's documentation includes a list of
CPLEX solution status codes. For code #22 there's a link to this short description: "(Barrier only) . . . Stopped due to a limit on the dual objective." This is not too clear, but I would guess it means that, in the barrier method, the dual objective value has become too large for reliable computations to continue. To check this, add bardisplay=1 to your cplex_options string; that will show the dual objective value (and other information about the solution) at every iteration.