Add an additional error class to expose application and/or temporary errors
- Dominant language
- Elixir
- Stars
- 2.5k
- Forks
- 422
- Avg merge
- 23h 26m
- Merged PRs (30d)
- 46
Description
**Is your feature request related to a problem? Please describe.**
Currently we have:
```
forbidden: Ash.Error.Forbidden
invalid: Ash.Error.Invalid
framework: Ash.Error.Framework
unknown: Ash.Error.Unknown
```
but once you start adding your own Application errors using Splode there should be an additional class between invalid and framework, something like temporary or a generic application that can apply to things like:
- I'm querying an external API and it's currently unavailable
- You're being rate limited
`invalid` seems to express a condition that is true always, and `framework` expresses something that is internal and where the user has no influence. There should be something that expresses "Maybe try in a bit ¯\_(ツ)_/¯"
**Describe the solution you'd like**
Add another error class that can be used from this kind of errors.
**Describe alternatives you've considered**
@zachdaniel mentioned "a thing you can do with splice where you can write your own splode with your own error classes, and use it on the error returned" but I don't have more context about this
Contributor guide
Research direction
Start by reading the existing Ash.Error.Forbidden, Ash.Error.Invalid, Ash.Error.Framework, and Ash.Error.Unknown classes and the referenced Splode integration. Clarify whether the requested category is application, temporary, or both, then define the expected classification and usage before implementing it; done means the new class can represent the stated external-API and rate-limit cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elixir
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100