Audit and update creation and manipulation of errors in the orchestrator and evaluator
Job To Be Done
- When I am calling a function, the errors I receive back from the API are consistent with each other, and as useful as possible, so I can diagnose what is wrong with my call and what I can do to fix it.
- When I am developing a function implementation, whether writing a composition or via 'native' code, I am able to simply, intuitively, and consistently communicate invalid usage to my users through ZErrors, so they can successfully use my implementation.
Acceptance criteria
A normal user…
- … should receive a simplified, specific error for each validation issue, rather than a nested tree of related errors for each - not fixed here; belongs to T301494
- … should always receive the most specific error possible from the orchestrator with trace-ability - covered partly by this work, partly by T301494 , partly by T321235
- … should never receive a generic error from the orchestrator or evaluator
- … should never receive an error from the orchestrator or evaluator with a hard-coded English-only error string (except when it's an error caught from library code, in which case the string is captured as Z500K1)
An implementation writer…
- … should be able to raise an error with a single, simple function call from a composition which is presented to the end user as a ZError - not fixed here; belongs to T305557
- … should be able to raise an error from native code via the normal code-native mechanism which is presented to the end user as a ZError - not fixed here; belongs to T321116
Completion checklist
Functionality:
- The solution meets the expected acceptance criteria described above
- All the child tasks are closed
- The issue has been peer reviewed
- The issue has been merged
Engineering:
- There are existing and passing unit/integration tests effectively testing its success and its failure
- All new classes/methods are covered by unit tests
Documentation
- All new functions/methods are annotated
- Related documentation in MediaWiki extension pages or Abstract Wikipedia pages in meta should be updated with the related changes