<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://knowledgebase.pirho.net/index.php?action=history&amp;feed=atom&amp;title=The_Importance_of_Rich_Error_Messages</id>
	<title>The Importance of Rich Error Messages - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://knowledgebase.pirho.net/index.php?action=history&amp;feed=atom&amp;title=The_Importance_of_Rich_Error_Messages"/>
	<link rel="alternate" type="text/html" href="https://knowledgebase.pirho.net/index.php?title=The_Importance_of_Rich_Error_Messages&amp;action=history"/>
	<updated>2026-07-11T11:44:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://knowledgebase.pirho.net/index.php?title=The_Importance_of_Rich_Error_Messages&amp;diff=406&amp;oldid=prev</id>
		<title>Dex: Created page with &quot;&#039;&#039;&#039;Summary:&#039;&#039;&#039; Errors are part of every system. Rich, structured error messages allow humans and machines to understand failures, diagnose problems, automate recovery, and improve interoperability.  == Context ==  Many platforms invest significant effort in defining APIs and data models while treating error handling as an afterthought.  A well-designed error response should communicate:  * What happened * Why it happened * Which component detected the problem * Whether t...&quot;</title>
		<link rel="alternate" type="text/html" href="https://knowledgebase.pirho.net/index.php?title=The_Importance_of_Rich_Error_Messages&amp;diff=406&amp;oldid=prev"/>
		<updated>2026-07-05T14:05:06Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Summary:&amp;#039;&amp;#039;&amp;#039; Errors are part of every system. Rich, structured error messages allow humans and machines to understand failures, diagnose problems, automate recovery, and improve interoperability.  == Context ==  Many platforms invest significant effort in defining APIs and data models while treating error handling as an afterthought.  A well-designed error response should communicate:  * What happened * Why it happened * Which component detected the problem * Whether t...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Summary:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Errors are part of every system. Rich, structured error messages allow humans and machines to understand failures, diagnose problems, automate recovery, and improve interoperability.&lt;br /&gt;
&lt;br /&gt;
== Context ==&lt;br /&gt;
&lt;br /&gt;
Many platforms invest significant effort in defining APIs and data models while treating error handling as an afterthought.&lt;br /&gt;
&lt;br /&gt;
A well-designed error response should communicate:&lt;br /&gt;
&lt;br /&gt;
* What happened&lt;br /&gt;
* Why it happened&lt;br /&gt;
* Which component detected the problem&lt;br /&gt;
* Whether the fault is temporary or permanent&lt;br /&gt;
* What corrective action can be taken&lt;br /&gt;
&lt;br /&gt;
== The Cost of Poor Error Handling ==&lt;br /&gt;
&lt;br /&gt;
=== Increased Support Costs ===&lt;br /&gt;
&lt;br /&gt;
Every missing detail increases diagnosis time.&lt;br /&gt;
&lt;br /&gt;
=== Reduced Automation ===&lt;br /&gt;
&lt;br /&gt;
Structured errors enable automated decision making.&lt;br /&gt;
&lt;br /&gt;
=== Interoperability Challenges ===&lt;br /&gt;
&lt;br /&gt;
Without a common semantic error model, each interface behaves differently.&lt;br /&gt;
&lt;br /&gt;
== What Makes an Error Rich? ==&lt;br /&gt;
&lt;br /&gt;
=== Error Identity ===&lt;br /&gt;
&lt;br /&gt;
* ValidationError&lt;br /&gt;
* AuthenticationFailed&lt;br /&gt;
* ResourceNotFound&lt;br /&gt;
* AccessDenied&lt;br /&gt;
&lt;br /&gt;
=== Human Readable Description ===&lt;br /&gt;
&lt;br /&gt;
Provide a concise explanation for operators and users.&lt;br /&gt;
&lt;br /&gt;
=== Machine Readable Classification ===&lt;br /&gt;
&lt;br /&gt;
* Client Error&lt;br /&gt;
* Server Error&lt;br /&gt;
* Validation Error&lt;br /&gt;
* Security Error&lt;br /&gt;
&lt;br /&gt;
=== Structured Detail ===&lt;br /&gt;
&lt;br /&gt;
Maintain machine-readable diagnostic information.&lt;br /&gt;
&lt;br /&gt;
=== Correlation Information ===&lt;br /&gt;
&lt;br /&gt;
* Request ID&lt;br /&gt;
* Correlation ID&lt;br /&gt;
* Workflow ID&lt;br /&gt;
* Transaction ID&lt;br /&gt;
&lt;br /&gt;
== SOAP Faults and RFC 7807 Solve the Same Problem ==&lt;br /&gt;
&lt;br /&gt;
=== SOAP Fault ===&lt;br /&gt;
&lt;br /&gt;
* Code&lt;br /&gt;
* Subcode&lt;br /&gt;
* Reason&lt;br /&gt;
* Detail&lt;br /&gt;
&lt;br /&gt;
=== RFC 7807 Problem Details ===&lt;br /&gt;
&lt;br /&gt;
* type&lt;br /&gt;
* title&lt;br /&gt;
* status&lt;br /&gt;
* detail&lt;br /&gt;
* instance&lt;br /&gt;
&lt;br /&gt;
== Canonical Error Models ==&lt;br /&gt;
&lt;br /&gt;
A canonical fault model can be projected into:&lt;br /&gt;
&lt;br /&gt;
* SOAP Fault&lt;br /&gt;
* RFC 7807 JSON&lt;br /&gt;
* Event Streams&lt;br /&gt;
* Audit Records&lt;br /&gt;
* Monitoring Systems&lt;br /&gt;
&lt;br /&gt;
== Design Philosophy ==&lt;br /&gt;
&lt;br /&gt;
Success responses describe expected behaviour.&lt;br /&gt;
&lt;br /&gt;
Error responses describe unexpected behaviour.&lt;br /&gt;
&lt;br /&gt;
Rich error messages are not merely diagnostics.&lt;br /&gt;
&lt;br /&gt;
They are part of the platform&amp;#039;s contract.&lt;/div&gt;</summary>
		<author><name>Dex</name></author>
	</entry>
</feed>