Backport #31725 by @wolfogre Fix #31707. It's split from #31724. Although #31724 could also fix #31707, it has change a lot so it's not a good idea to backport it. Co-authored-by: Jason Song <i@wolfogre.com>