An error message from DSolve that includes
DSolve[ ..., True, ... ]
where there may be nothing before True
usually means that in the past you told Mathematica
and it stored that the value of y is x.
Then you told Mathematica
DSolve[..., y==x,... ]
Now y==x tests whether the value of y is x or not.
Since you told it that it was earlier this simplifies to True.
Solution. Be very careful to not assign values to variables that you do not intend.
You can use
to see if y has a value. If it does and you no longer wish this to be the case then
you can use
to tell Mathematica to remove the prior information about y.