A deploy that completes without error isn't the same as a deploy that worked — the pipeline succeeding only confirms the new code is running, not that it's behaving correctly under real production traffic. Two complementary checks close that gap:
This is also the practical argument for deploying smaller, more frequent changes over large, infrequent ones: when something does go wrong, a smaller diff since the last known-good deploy means less to search through to find the cause, and less to lose by rolling back.