No language will save you from:
- A lack of knowledge about the domain, this includes the technical framework in which your program exists, behaves and interacts
- Code errors which result in valid code, but does the wrong thing, Rust isn't magic
- Bad choice of datastructures and algorithms
- Incomprihensible code documentation and bad development practices.
While I get that languages can eliminate a type of problem, they don't eliminate badly written software. Most of the time, the software development process itself, is more important, if you really want to examine what it means to build secure/safe software.
Having a team dedicated to developing software safely and using a language with stronger type safety guarantees vs. having a person just build something with the same language, does not magically imbue the end product with good qualities.
Take your example, if you don't have a good foundation in distributed systems, and try to build a distributed system in Erlang, you will only get so far, before you hit your head against the wall so hard, you start studying distributed systems instead.