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
PipelineTask
execution, executors will log the error message atERROR
level and then proceed, just as they do withNoWorkFound
. This allows (but also requires) downstream tasks to be prepared to handle partial outputs (e.g. anExposure
with no WCS). - the
--raise-on-partial-outputs
option may be passed topipetask run
andpipetask run-qbb
to 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.