Description
A recent package upload failed to upload metadata to the registry after the tarball was uploaded to storage. The author retried the publishing workflow, but publishing failed because there was already a tarball in storage. See:
purescript/registry#336 (comment)
purescript/registry#336 (comment)
Specifically, in this section of publishRegistry
, the Storage.upload
and Registry.writeMetadata
functions can throw exceptions, and the process is aborted if so:
registry-dev/app/src/App/API.purs
Lines 644 to 647 in 8177cd3
We should probably catch the Registry.writeMetadata
exception and roll back the Storage.upload
(ie. issue a Storage.delete
) before fully exiting the pipeline. Alternately, we could have a sort of bracket functionality built into the publish pipeline where we record what resources have been modified and on publish failure we roll back all of those modifications.