To add to all the good answers, we can try to find out why DSolve generated this message by solving the ode step by step. First generate the solution solution with no IC, then solve the constant of integration manually. This shows why Mathematica gave such message.
It is because without assuming the domain is real, the solution of the constant of integration is not unique. Only when adding assumption of Reals does it give same solution as DSolve gave directly
ClearAll["Global`*"];
ode=y'[x]*Sin[x]==y[x]*Log[y[x]];
ic = y[Pi/2] == E
directSolution = DSolve[{ode, ic}, y[x], x]

Now lets do it step by step
sol = DSolve[ode, y[x], x][[1, 1]]

Now setup the equation to solve for the constant of integration using given initial conditions
eq = sol /. {y[x] -> E, x -> Pi/2} /. Rule -> Equal

Solve for c
cSolution = Solve[eq, C[1]]

Now if we use the above constant of integration and plug it back into the general solution we obtain
sol /. cSolution // Simplify

You see, for different $c_2,c_3$ there are different constant of integration $c_1$. But that all goes away if we solve in reals domain since then $c_2=0,c_3=0$ and what remains is $c_1=\ln 1$ which is zero.
if we now solve for $c_1$ using reals domain, now the same solution is obtained as above with DSolve with that extra message about some solutions might not be found:
cSolution=Solve[eq,C[1],Reals]

sol /. cSolution // Simplify

Mathematica internally works by default in complex domain. There is no way to pass assumptions to DSolve as far as I know. Basically the solution is unique if domain is real. I think what DSolve does, is at the end it must simplified the constant of integration to be real, but remembered that the solution had other complex values. So it returned back the solution assuming real, but issued that message because of this.
We have no access to the DSolve source code to check, but I think this is what happened.