Given a competent software architect, I would say the biggest issue tends to be implementation, and more specifically individuals that lack knowledge and training about secure coding best practice.
To qualify this short answer, I will contrast with design and show that design covers a broad space, some design is prescribed and defined by others, the rest, you can define.
Here are all of the layers to consider, starting at the end with the coder:
- Implementation
- Design
- System Architecture
- Frameworks and Libraries
- Industry Expectations
Industry Expectations are the habits, truths, misconceptions, hype, and customer perceptions that influence both software developers and their customers. This is largely prescribed design.
Frameworks [4] are generally influenced by Industry expectations and Norms[5], but over time it feeds back the other way: new frameworks are built with new ideas (sometimes security-focused) to improve Industry Expectations and Norms [5]. One example of a new framework: Google Firebase FireStore lets a mobile app define a query directly on the client-side, then the framework takes care of serialization and remote execution on the database; security occurs with javascript security files on the server that are quite flexible, and a security analyst can review those and spot any problems quite rapidly. This is also prescribed design.
System Architecture [3] is often prepared with [4] and [5] in mind. The decision to build a RESTFul API service (framework) is based on a Software Architecture decision [3] and constrained to the way that the framework [4] is designed to work. A more secure system architecture choice might be GraphQL, because RESTFul API require more manual coding with the usual human-error issues.
System architecture [3] is also broader than just software architecture. It chooses the right frameworks [4] as well as the software stack and hosting systems to build a solution. Choosing a little-known framework with a small developer community means there is low scrutiny and no time-tested maturity. Choosing a small Virtual Machine hosting provider with no published security practices can be a big liability.
I treat design [2] as a distinct item to System Architecture [3], Frameworks [4], and Industry Expectations [5]. Design is less about the system, and more about the customer's requirements, usually in a data-centric way. I say data-centric, because security is ultimately implemented around authorization and access to particular data, so an authorization-conscious design of the data model can improve security outcomes. So while implementation might be critical, this level of design is something you can control and can fail.
Finally, implementation [1] is well represented in the answers here already. Software coders should know their craft, and take designs [2] and write code using secure patterns. If after all of the above, there is still a security failure, perhaps it's a knowledge and training issue, because software coders should be following the "plans" in a best practice manner, not freestyling.