Why are the optimal values initial values when I run maximize welfare code

Dear professor,
Below attach are my code for computing optimal monetary policy rules based on welfare maximizing. When I compute the conditional welfare, the optimal reaction coefficients ‘xhat’ are not equal to initial values. But when I compute the unconditional welfare, that is, run ‘oo_.mean(strmatch(‘value’,M_.endo_names,‘exact’))’, the optimal values equal to initial values.
Could you help me, please? Thanks!!!
conditional_welfare_objective.m (1.1 KB) policy.mod (11.5 KB) SteadyState.mat (389 Bytes)