There is no man on earth that is without a weakness, it is planted in all men to avoid absolute superiority over the other. That is human for you.
source
We all know our weakness, even though we haven't totally discovered it yet. Even if you cannot discover your own weakness, others will help you, when you start to mingling with the wrong people in life, they can easily detect your weakness and use it against you till you come to realization by yourself.
The truth is that everyone carries the ability of recognizing their weakness, but it is left for you to develop yourself more so that you can make them not to easily detectable by others. It is your responsibility to know your shortcomings and see the reason to work and develop, so your don't become a victim of manipulators and people who take advantage of other people weakness.
The problem is that most people will forever disagree with you that they have shortcomings, they will refuse to accept their weakness even when it is obvious, instead they blame others for not knowing who they really are. That is the animal in humans acting up.
You making a mistake alone already shows that there is weakness in you. Mistakes are weakness, when you pride refuses you to accept your weakness and work on it, don't think it is greatness, and when you try to blame others for your shortcomings without accepting them on your own that is wickedness.
Your weakness will always remain with you, when you fail to improve yourself so it becomes minimal, you are creating room for others to use it and hurt you. Know your weakness, accept them, develop yourself and don't blame others for it.