At first, it is very helpful to have a small example. I think the function of interest for this example is

eqn: 0.4848484848484849*x*tan(x)+sqrt(0.7799327999999998*%pi^3-x^2)

One important and documented restriction of the algorithm of find_root is, that the function has to be continuous over the interval, which is given as an argument to find_root. If I do a plot of the function for the interval [0,5] with the command

plot2d(eqn,[x,0,5],[y,-100,100])

I can see that the function is not continuous at two points and that the function has one root. Furthermore, the root is near the value 1.75.

If I take the function of this example and the interval [1.6,2.0] I get the desired root:

(%i1) eqn:.4848484848484849*x*tan(x)+sqrt(.7799327999999998*%pi^3-x^2);

(%o1) .4848484848484849*x*tan(x)+sqrt(.7799327999999998*%pi^3-x^2)

This is the root of the equation:

(%i2) result:find_root(eqn,x,1.6,2);

(%o2) 1.753812411159384

Backsubstitution shows that the result is a root within an expected accuracy

(%i3) float(subst(result,x,eqn));

(%o3) -1.77635683940025e-15

The algorithm of find_root fails in the interval [0,5] because the function is not continuous over the interval.

I think we do not have a bug. The numerical routine find_root has documented limitations. Setting the status to pending and the resolution to "works for me".

Dieter Kaiser