Nobody is perfect. So your characters should not be ether. Especially Main Characters.
You can find that this does have more leeway with side characters, especially with characters that your main character is enemies with.
But you will find that not a lot of people like reading books with characters that don’t fail at anything, or that don’t have a single flaw.
That type of book doesn’t lend very well to character development. Not to mention that people don’t tend to get invested in the stakes for a character that does not fail.
It Gets Boring.
Reading failure and flaws is fun.
You get invested, you know the stakes, and you want them to win, you want to read on to see what happens.
And people like characters that they can relate to.
People Don’t Relate To Perfect.
People relate to the character that have the same flaws as them. The clumsy relating to the clumsy character. The Stuttering person relating frustrations of the stuttering character. The socially awkward person to the socially awkward character.
Not to mention that we all love the flawed funny awkward character from our favorite movies and books.
You will find that the perfect character does not drive the plot. The Flawed One Does That.
This does not meant that the character has to be a failure at everything. Because that would not be fun to read ether.
In some chases that might be a good character for the plot.
But in most cases that would frustrate a person who has to read about a character that fails at everything.
So the character could have its flaws and their strengths.
They could have their strengths at some things but their failures at others.
Think of Sherlock Holmes, brilliant at deductions, but not good at emotions or knowing that the sun goes around the earth.
So it’s just a matter of finding a balance of the two things.
A mix of flaws and strengths.