When one loglinearized equation is composed of only (t+1) timing convention as follows,

s_ct(+1) + h_ct(+1) = s_ht(+1) + h_ht(+1);

These four variables are not predetermined variables like capital stock.

When writing dynare code, do I have to delete all (+1) as follows?

s_ct + h_ct = s_ht + h_ht;

When I delete all (+1) like 2), dynare gives reasonable results.
But When I write this equation like 1), dynare produce following error.

Error using print_info (line 54)
One of the eigenvalues is close to 0/0 (the absolute value of
numerator and denominator is smaller than 1e-06!
If you believe that the model has a unique solution you can
try to reduce the value of qz_zero_threshold.

In this case Do I have to delete all (+1)?
Would you give me the reason why two case are different.

I guess that equation with only (+1) timing provokes rank condition failure or BK condition violation.

The Dynare timing convention says that there is a conditional expectation operator in front of every equation. Thus,

means that the equation has to hold only in expectations. The timing without the (+1) means that the equation actually has to hold for all time periods.
The economic intuition of your model should always dictate the timing.

With the error you describe when using the standard timing, try using

I agree that we have to make a decision on the basis of economic intuition.
When economic intuition is considered, I concluded that the following equation is valid.

Dynare give me a reasonable results.
Thank you for sparing your precious time for me.

Typically, model_diagnostics indicates which equations are redundant.
But sometimes model_diagnostics does not produce any results.
Do you have this kind of experiences?
What does it mean?

Does it mean that there is no problem of redundant equations
but this model may have other problems?

model_diagnostics is a useful tool that can detect many basic issues. When it detects no problems, it will provide no output at all. But this does not mean that there are no problems.