Looking at the dsge_likelihood function (in version 4.4.3), it seems strange to me that the measurement error equation is set to:

H = zeros(pp,1); on line 338. Then, the statement if all(all(abs(H-diag(diag(H)))<1e-14)) (line 708) is always true (when H remains a vector), which is not what it is supposed to do, if I understand the code correctly.

In the unstable version, ‘initial_estimation_checks’ throws an error, saying that the forecast error variance became singular.
Can you tell if this is a problem with my code or with dynare? main.zip (15.5 KB)

The behavior in 4.4.3 is a bug that is fixed in the unstable version. The message about stochastic singularity that you get, indicates a problem with your model. There must be an exact linear combination of observables implied by your model.