# Errors and links

**URL:** https://discuss.jsonapi.org/t/errors-and-links/1227
**Category:** Uncategorized
**Created:** [March 8, 2018, 8:33am UTC](https://discuss.jsonapi.org/t/errors-and-links/1227 "2018-03-08T08:33:12Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![marceloverdijk](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.jsonapi.org/marceloverdijk/32/521_2.png) [@marceloverdijk](https://discuss.jsonapi.org/u/marceloverdijk)
#### Post date: [March 8, 2018, 8:33am UTC](https://discuss.jsonapi.org/t/errors-and-links/1227/1 "2018-03-08T08:33:12Z")

</div>

I really like the JSON:API spec for it’s clearness regarding MAY and MUST mentions.  
However the links member in an Error is not crystal clear.

An error object MAY have the following members:

- links: a links object containing the following members:
  - about: a link that leads to further details about this particular occurrence of the problem.

Does this mean a links member MUST and MUST ONLY contain an about link?  
Or MAY it contain an about link and MAY it contain any other links?

Cheers,  
Marcel

---

<div class="post-metadata">

### Author: ![michaelhibay](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.jsonapi.org/michaelhibay/32/405_2.png) [@michaelhibay](https://discuss.jsonapi.org/u/michaelhibay)
#### Post date: [March 8, 2018, 1:30pm UTC](https://discuss.jsonapi.org/t/errors-and-links/1227/2 "2018-03-08T13:30:33Z")

</div>

I think you interpreted the specification exactly correct. To me, the link object in the error response is intended to point to the documentation of the specific application error code in order to explain the context when combined with the `source/pointer` and `source/parameter` arguments.

Suppose you have a very complex workflow, like a mortgage application. If you have specific domain (application) validation which goes beyond simply sanitizing the user input, the error link would point to the documentation which explains error `code=394294`. The client or user/developer could then use these combined fields to present a correction dialogue with only the invalid segments for the user to correct, and resubmit.

If you were to expand this field to a generic container, you would lose the ability to guarantee the interoperability of the fields to create this capability. You could certainly still have it if the situation persisted, but it would greatly complicate the consumer, making errors and _interpretation_ differences far more likely.

---

<div class="post-metadata">

### Author: ![fdrake](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.jsonapi.org/fdrake/32/654_2.png) [@fdrake](https://discuss.jsonapi.org/u/fdrake)
#### Post date: [July 31, 2020, 4:59pm UTC](https://discuss.jsonapi.org/t/errors-and-links/1227/3 "2020-07-31T16:59:45Z")

</div>

I find the description of the **links** member of the error object confusing as well.

Since the about member refers to information on the specific instance of the error described by the error object, why isn’t a **self** member used instead? Is an error instance really not a resource as well?
