Merge #19101 with fixes

I am keeping this linked with #19101 to preserve the discussion chain