I’ve just merged DM-44488, which belatedly finishes off the implementation of RFC-958 by introducing special handling for the new lsst.pipe.base.AnnotatedPartialOutputsError exception:
- by default, when this exception is caught during
PipelineTaskexecution, executors will log the error message atERRORlevel and then proceed, just as they do withNoWorkFound. This allows (but also requires) downstream tasks to be prepared to handle partial outputs (e.g. anExposurewith no WCS). - the
--raise-on-partial-outputsoption may be passed topipetask runandpipetask run-qbbto raise this exception (or, rather, the exception it chains, since that’s how it’s supposed to be used) immediately instead.
Since the new CalibrateImageTask is the only place we currently raise this exception type and that’s currently only in use in AP, and we expect to use the equivalent of --raise-on-partial-outputs in prompt processing, the immediate effects of this will be fairly narrow. But I do expect us to have to spend some time improving the failure modes of downstream tasks to at least improve error messages. On the other hand, we will no longer be blocked from trying to “recover” from earlier failures in later steps that often have access to more data, especially once CalibrateImageTask is used in the DRP pipelines as well.