Hi Santanu,
With very high precision it goes through:
#+begin_src jupyter-python :kernel sagemath
A = random_matrix(ZZ, 10, 10, x=-2^500, y=2^500)
A.echelonize() # make it interesting by turning into HNF
from fpylll import FPLLL, IntegerMatrix, GSO, LLL
B = IntegerMatrix.from_matrix(A)
FPLLL.set_precision(20000) # 20000 bits of precision!
M = GSO.Mat(B, float_type="mpfr")
M.update_gso()
L = LLL.Reduction(M)
L.size_reduction()
C = B.to_matrix(matrix(ZZ, 10, 10)) # back to Sage's format
#+end_src
HNF is pretty bad for precision, so it’s an extreme example.