The surprising failure mode When you make too many requests to a free financial data API too quickly, you expect an error. An exception, a 429 status, something your try/except can catch. What you get instead is silence. The response arrives normally. The data structure is there. But the values inside are None , NaN , or an empty DataFrame. Your application continues. No exception is raised. No error is logged. Your dashboard shows dashes instead of numbers, and if you're not looking carefully, you might not notice for hours. Why this happens Free-tier financial data APIs are built to be graceful. Raising exceptions on rate limits would break the many scripts that don't handle errors properly. Returning empty data is safer — callers that check for data presence handle it correctly; callers that don't were probably going to crash anyway. The API is also incentivised to give you something .…