DomainError while solving ODE

That’s not the point. You need to allow it to go negative in order to reject the negative solution.

If you have this with PositiveDomain or isoutofdomain, then it’s correct. Those will force the solution to be positive, but to act they have to allow the solution to go slightly negative to trigger. If you error during that triggering, then it can’t work.