diff --git a/cumulusci/salesforce_api/rest_deploy.py b/cumulusci/salesforce_api/rest_deploy.py index 70d532569a..9c184b267c 100644 --- a/cumulusci/salesforce_api/rest_deploy.py +++ b/cumulusci/salesforce_api/rest_deploy.py @@ -83,6 +83,7 @@ def __call__(self): self.task.logger.error( f"Deployment request failed with status code {response.status_code}" ) + raise MetadataApiError(f"Deployment request failed with status code {response.status_code}", response) # Set the purge_on_delete attribute based on org type def _set_purge_on_delete(self, purge_on_delete): @@ -112,10 +113,14 @@ def _monitor_deploy_status(self, deploy_request_id): if response_json["deployResult"]["status"] not in ["InProgress", "Pending"]: # Handle the case when status has Failed if response_json["deployResult"]["status"] == "Failed": + error_log = '' for failure in response_json["deployResult"]["details"][ "componentFailures" ]: - self.task.logger.error(self._construct_error_message(failure)) + error_message = self._construct_error_message(failure) + self.task.logger.error(error_message) + error_log += error_message + "\n" + raise MetadataComponentFailure(error_log, response) return time.sleep(5)