A question about the dynamic system in DSGE

I am trying to find the transition path after a negative technology shock using dynare.

THE dynamic system includes one budget constraint for government, which is given by
gst-tt+(1+rbt(-1))*bt(-1)+mt(-1)/pit, where gst is the government spending, bt is the government bonds and mt the money balance.

when I set the variable gst to be endogenous decided by the budget constraint and the government bonds and the money balance exogenously given, Dynare cannot find a linear solution and the rank condition isn’t verified. But when I set the variable mt to be endogenously decided by the budget constraint but gt and bt exogenously given, the code runs well and the transition path can be found.

What’s the reason of it? Does anyone can help me?

The information you provided is insufficient to give any advice. What balances the government budget? The budget constraint does not tell you about the actual dynamics.

Let me provide more details.
This is a dynamic general equilibrium model with heterogeneous households. The households make decisions on labor, physical capital, government bond holdings and money holdings. A certain type of households receives government subsidy each period. There is also a standard firm side.

As for the government side, I only set a budget constraint for simplicity, which is given by
gst+(1+rbt(-1))*bt(-1)+mt(-1)/pit = tt+bt+mt .
The government spending ‘gst’ is used to subsidize a certain type of household. I just set ‘gst = gs’, ‘gs’ is a constant. ‘tt’ is the taxation levied on firm profit and wage, and the tax rate is also set exogenously. The supply of government bond ‘bt’ is exogenously given, where I set ‘bt = b’, ‘b’ a constant. The demand of government bonds is derived from the households’ decision. Then we can pin down the bond rate. The money supply is used to balance the government budget. The money demand is derived from the household decision, so we can pin down the inflation rate ‘pit’. In this way, when there is a negative technology shock, the government use ‘mt’ to balance its budget. The code runs well under this situation.

BUT in another setting, when the government uses ‘gst’ to balance the budget, Dynare cannot find a linear solution and the rank condition isn’t verified. In this setting, the bond and money supply are given by ‘bt = b’ and ‘mt = m’, where ‘b’ and ‘m’ are constants.

The difference between these two scenarios is the variable I use to balance the government budget. In the first one, money supply ‘mt’ is used to balance the budget and the second one the government spending ‘gst’. I wonder why Dynare cannot find a linear solution in the first setting but works well in the second setting. It seems that there is no large difference in model settings.

Thanks a lot!

What is the exact message? Is the problem that the budget cannot be balanced, i.e. the system is explosive? Or is the problem that bonds and money are now perfect substitutes and you cannot disentangle the two?