&gt;an exception is better than a silent failure in almost all situations.<p>&gt;this is an argument for not using 200 for all; not against<p>The practical side of me disagrees.<p>Experience bears out that plenty of developers are at a loss when e.g. a login callback page shows an unhandled exception error <i>despite</i> error-checking code being in place and running against the response&#x27;s &quot;error&quot; node or whatever is used.<p>The problem is that there just aren&#x27;t enough people out there that can understand the entire stack, and the end result is that people who&#x27;ve paid (good&#x2F;bad) money for development - and their end users - end up with services that&#x27;d <i>otherwise</i> be decently functional showing the odd exception error instead.<p>(the technical side of me agrees with you absolutely!)