A bad way to design your software is to expose sensitive information to the end user, who might be a potential attacker.
That is why you need to invest in quality specialists who will not only design the solution but also take their time to test it thoroughly!
One more example of a poor design. The service should connect to a register to verify the public key for authorization, but something went wrong and timeout.
I can clearly see that there was an expiration error, but the root cause might be wrong arguments send to the register. The application team should have received from the other service instructions about that change.
Here you can observe both issues with the product management on the receiving end and the issue of project management on the person responsible for the integration of the solution. As well as issue exposing the underlying software implementation by observing the stack trace.