Local nonlinear optimization solvers, such as IPOPT, are not guaranteed to find a feasible point for problems that are feasible. That is certainly the case for problems with non-convex constraints, and I believe may even occur sometimes for problems having convex nonlinear constraints.
The starting (initial) point is often important in determining whether or not a feasible point is found.
Things are even worse than you might think. I have experienced a number of occasions on which I provided a starting point in the interior of the feasible region, and the solver diverged to an infeasible point.
If you want an (almost) guaranteed determination of feasibility for a non-convex problem, use an (almost) rigorous (branch and bound) global optimization solver, such as BARON, COUENNE, ANTIGONE, BMIBNB (under YALMIP), Octeract or SCIP. Even those solvers can occasionally declare feasible problems as infeasible, generally when the numerics of the problem are bad, such as very bad input data scaling.
The only guaranteed way to make a reliable determination of feasibility is to use a "verified" global solver, such as based on interval (or affine) arithmetic with outward rounding, based on, perhaps, branch and bound interval Newton's method. Unfortunately, there are no hardware implementations I know of to implement interval arithmetic with outward rounding; so that needs to be done in software. Therefore, such solvers tend to take orders of magnitude longer to run than the much more popular almost rigorous (branch and bound) global optimization solvers, which already can have very long run times. Note that for purposes of determining feasibility, it is sufficient to use a nonlinear equation and inequality solver rather than an optimizer.