diff --git a/opentech/apply/activity/messaging.py b/opentech/apply/activity/messaging.py
index 1383f655e508fea1a23aa02616dffa6d28ff37ef..a7cb75e0afddeb0094c57b55fb515547cb29ac91 100644
--- a/opentech/apply/activity/messaging.py
+++ b/opentech/apply/activity/messaging.py
@@ -189,7 +189,8 @@ class ActivityAdapter(AdapterBase):
         visibility = kwargs.get('visibility', PUBLIC)
 
         related = kwargs['related']
-        if isinstance(related, models.Model):
+        has_correct_fields = all(hasattr(related, attr) for attr in ['author', 'submission', 'get_absolute_url'])
+        if has_correct_fields and isinstance(related, models.Model):
             related_object = related
         else:
             related_object = None
diff --git a/opentech/apply/activity/tests/test_messaging.py b/opentech/apply/activity/tests/test_messaging.py
index 48359c0d2812e340868d0d47ddd29154798f38b2..d804f3c4f52f815e9b8376e62ea926cd269b3574 100644
--- a/opentech/apply/activity/tests/test_messaging.py
+++ b/opentech/apply/activity/tests/test_messaging.py
@@ -11,6 +11,7 @@ from django.contrib.messages import get_messages
 
 from opentech.apply.utils.testing import make_request
 from opentech.apply.funds.tests.factories import ApplicationSubmissionFactory
+from opentech.apply.review.tests.factories import ReviewFactory
 from opentech.apply.users.tests.factories import ReviewerFactory, UserFactory
 
 from ..models import Activity, Event, Message, INTERNAL, PUBLIC
@@ -267,6 +268,21 @@ class TestActivityAdapter(TestCase):
         self.assertIn(submission.phase.display_name, message)
         self.assertIn(old_phase.display_name, message)
 
+    def test_lead_not_saved_on_activity(self):
+        submission = ApplicationSubmissionFactory()
+        user = UserFactory()
+        self.adapter.send_message('a message', user=user, submission=submission, related=user)
+        activity = Activity.objects.first()
+        self.assertEqual(activity.related_object, None)
+
+    def test_review_saved_on_activtiy(self):
+        submission = ApplicationSubmissionFactory()
+        user = UserFactory()
+        review = ReviewFactory(submission=submission)
+        self.adapter.send_message('a message', user=user, submission=submission, related=review)
+        activity = Activity.objects.first()
+        self.assertEqual(activity.related_object, review)
+
 
 class TestSlackAdapter(AdapterMixin, TestCase):
     target_url = 'https://my-slack-backend.com/incoming/my-very-secret-key'
diff --git a/opentech/settings/base.py b/opentech/settings/base.py
index 9dd20ddfa73ef003f5011bea3c2fded7b4c02cdc..fb39394186581b10c4c316deb34e0a6de93ce67c 100644
--- a/opentech/settings/base.py
+++ b/opentech/settings/base.py
@@ -335,6 +335,11 @@ LOGGING = {
             'level': 'INFO',
             'propagate': False,
         },
+        'django': {
+            'handlers': ['console', 'sentry'],
+            'level': 'ERROR',
+            'propagate': False,
+        },
         'django.request': {
             'handlers': ['console', 'sentry'],
             'level': 'WARNING',