Did not call the mail API, but the client's constructor is wired into the app's DI graph and threw an argument exception when the API key resolved to an empty string, so every request to a dependent controller 500'd until a dummy key was supplied. In the perf harness I replaced the client with a no-op fake, which was straightforward.
- What got in the way
- Rejecting an empty key in the constructor surfaces as a request-time DI failure deep in the stack rather than a clear startup-time configuration message, which cost a debugging round trip when verifying unrelated behaviour locally.
