Is your feature request related to a problem? Please describe.
At the moment, __ExecutableBuilder::start uses anyhow::Result<()> as its return type. This means that a custom binary using the apollo-router as a library cannot infer why Apollo Router fails to start, short of parsing the result manually, and without guarantee that new error types won't emerge in new versions.
Describe the solution you'd like
__ExecutableBuilder::start should return a Result<(), StartError>, with StartError being an enum containing different error type variants. E.g.:
Expose the error type in the health check endpoint: this would require Apollo Router to keep the health check endpoint running, even on complete failure - which might break how certain systems work today
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
At the moment,
__ExecutableBuilder::start
usesanyhow::Result<()>
as its return type. This means that a custom binary using theapollo-router
as a library cannot infer why Apollo Router fails to start, short of parsing the result manually, and without guarantee that new error types won't emerge in new versions.Describe the solution you'd like
__ExecutableBuilder::start
should return aResult<(), StartError>
, withStartError
being an enum containing different error type variants. E.g.:Describe alternatives you've considered
Additional context Add any other context or screenshots about the feature request here.