People often claim that memory-safe languages eliminate the class of memory bugs, but that is not true and can give less experienced devs a false sense of security.
You can violate borrow checker at runtime in Rust with zero unsafe blocks. You can have null-pointer dereference in C#. You can index out of bounds in Java.
The difference is that while C++ will crash at unspecified time with SIGSEGV (or not crash at all), memory-safe languages will either crash at a well-defined time in a well-defined way, or they will emit an exception you shall handle.
In the customers eyes, that might not even be a difference.