Hi,
I just had a look at your Code and think the following should be changed.
% for the terminal cost
ocp_model.set('cost_type_e', 'nonlinear_ls'); % I think you want to use 'ext_cost'
ocp_model.set('cost_expr_ext_cost_e', model.expr_ext_cost_e);
% Dont fix initial state, i.e. remove:
ocp_model.set('constr_x0', x_0);
For error status descriptions, check Acados error status 2 on python interface
Cheers,
Jonathan