Several questions regarding Levenberg-Marquadt implementation in Scipy

I came across a few oddities while trying to optimize a function using Levenberg-Marquadt algorithm in Scipy. I was wondering if anyone had an explanation for them.

A. I have an objective function that accepts two parameters with 2 residuals. As far as I understand, LM for scipy root using sum(residual^2) and least_squares should be the same. However, least_squares returns an optimized value while root fails. Are the implementations for the two functions different?

B. When I optimize the function using least_squares, the second parameter does not change from its initial value. Why does this happen?

Thank you for your help!