$message = preg_replace('/%error%/i', $result->SendSMSResult->ResultArray[0], $this->errorMessage); неверно работает, когда ResultArray === 'Данная подпись запрещена администратором', а не массив. На скрине дебаггер: 