diff --git a/lib/Mailer/Methods/ErrorMappers/MailPoetMapper.php b/lib/Mailer/Methods/ErrorMappers/MailPoetMapper.php index ddf8f26fa2..f319f6c18c 100644 --- a/lib/Mailer/Methods/ErrorMappers/MailPoetMapper.php +++ b/lib/Mailer/Methods/ErrorMappers/MailPoetMapper.php @@ -34,14 +34,15 @@ class MailPoetMapper { case API::RESPONSE_CODE_PAYLOAD_ERROR: $result_parsed = json_decode($result['message'], true); $message = __('Error while sending.', 'mailpoet'); - if(is_array($result_parsed)) { - try { - $subscribers_errors = $this->getSubscribersErrors($result_parsed, $subscribers); - } catch (InvalidArgumentException $e) { - $message .= ' ' . $e->getMessage(); - } - } else { + if(!is_array($result_parsed)) { $message .= ' ' . $result['message']; + break; + } + try { + $subscribers_errors = $this->getSubscribersErrors($result_parsed, $subscribers); + $level = MailerError::LEVEL_SOFT; + } catch (InvalidArgumentException $e) { + $message .= ' ' . $e->getMessage(); } break; case API::RESPONSE_CODE_TEMPORARY_UNAVAILABLE: diff --git a/tests/unit/Mailer/Methods/ErrorMappers/MailPoetMapperTest.php b/tests/unit/Mailer/Methods/ErrorMappers/MailPoetMapperTest.php index 411e6238d3..697f18d393 100644 --- a/tests/unit/Mailer/Methods/ErrorMappers/MailPoetMapperTest.php +++ b/tests/unit/Mailer/Methods/ErrorMappers/MailPoetMapperTest.php @@ -74,7 +74,7 @@ class MailPoetMapperTest extends \MailPoetTest { $error = $this->mapper->getErrorForResult($api_result, $this->subscribers); expect($error)->isInstanceOf(MailerError::class); expect($error->getOperation())->equals(MailerError::OPERATION_SEND); - expect($error->getLevel())->equals(MailerError::LEVEL_HARD); + expect($error->getLevel())->equals(MailerError::LEVEL_SOFT); $subscriber_errors = $error->getSubscriberErrors(); expect(count($subscriber_errors))->equals(2); expect($subscriber_errors[0]->getEmail())->equals('a@example.com');