diff --git a/zerver/lib/error_notify.py b/zerver/lib/error_notify.py index 88774d7bae..5acc2449c7 100644 --- a/zerver/lib/error_notify.py +++ b/zerver/lib/error_notify.py @@ -8,8 +8,8 @@ from django.utils.translation import ugettext as _ from typing import Any, Dict, Optional from zerver.filters import clean_data_from_query_parameters -from zerver.models import get_system_bot -from zerver.lib.actions import internal_send_message +from zerver.models import get_stream, get_system_bot +from zerver.lib.actions import internal_send_stream_message from zerver.lib.response import json_success, json_error def format_email_subject(email_subject: str) -> str: @@ -78,9 +78,17 @@ def zulip_browser_error(report: Dict[str, Any]) -> None: body += ("Message: %(message)s\n" % dict(report)) - realm = get_system_bot(settings.ERROR_BOT).realm - internal_send_message(realm, settings.ERROR_BOT, - "stream", "errors", format_email_subject(email_subject), body) + error_bot = get_system_bot(settings.ERROR_BOT) + realm = error_bot.realm + errors_stream = get_stream('errors', realm) + + internal_send_stream_message( + realm, + error_bot, + errors_stream, + format_email_subject(email_subject), + body + ) def notify_server_error(report: Dict[str, Any], skip_error_zulip: Optional[bool]=False) -> None: report = defaultdict(lambda: None, report) @@ -112,9 +120,17 @@ def zulip_server_error(report: Dict[str, Any]) -> None: message = ("%s\nError generated by %s\n\n~~~~ pytb\n%s\n\n~~~~\n%s\n%s" % (logger_str, user_info, report['stack_trace'], deployment, request_repr)) - realm = get_system_bot(settings.ERROR_BOT).realm - internal_send_message(realm, settings.ERROR_BOT, "stream", "errors", - format_email_subject(email_subject), message) + error_bot = get_system_bot(settings.ERROR_BOT) + realm = error_bot.realm + errors_stream = get_stream('errors', realm) + + internal_send_stream_message( + realm, + error_bot, + errors_stream, + format_email_subject(email_subject), + message + ) def email_server_error(report: Dict[str, Any]) -> None: email_subject = '%(node)s: %(message)s' % dict(report)