diff --git a/retribute_api/search/sources.py b/retribute_api/search/sources.py
index 80159ad45f817b3e11405cd233cac66621bf2748..7e01bbebf904e797aa3cf2cccd40f1b6fe9171a0 100644
--- a/retribute_api/search/sources.py
+++ b/retribute_api/search/sources.py
@@ -1,5 +1,6 @@
 from django.conf import settings
 from django.utils import timezone
+import json
 
 from .. import providers
 from . import activitypub
@@ -38,6 +39,7 @@ class Activitypub(Source):
     ]
 
     async def get(self, lookup, session, cache):
+
         try:
             actor_data = await cache.get("activitypub:profile:{}".format(lookup))
         except cache.NotFound:
@@ -45,7 +47,8 @@ class Activitypub(Source):
                 lookup, headers={"Accept": "application/activity+json"}
             ) as response:
                 response.raise_for_status()
-                actor_data = await response.json()
+                text = await response.read()
+                actor_data = json.loads(text)
             await cache.set("activitypub:profile:{}".format(lookup), actor_data)
         serializer = activitypub.ActorSerializer(data=actor_data)
         serializer.is_valid(raise_exception=True)
@@ -55,7 +58,7 @@ class Activitypub(Source):
 
         data = {
             "links": activitypub.extract_urls_from_attachments(
-                serializer.validated_data["attachment"]
+                serializer.validated_data.get("attachment", [])
             )
             + activitypub.extract_urls_from_summary(
                 serializer.validated_data["summary"]
diff --git a/retribute_api/search/webfinger.py b/retribute_api/search/webfinger.py
index c89a7be71321ee06ca116d2851b4a43221651b60..a3f1534aa5a62535291935e038181d723212a41d 100644
--- a/retribute_api/search/webfinger.py
+++ b/retribute_api/search/webfinger.py
@@ -1,3 +1,5 @@
+import json
+
 from rest_framework import serializers
 
 from . import exceptions
@@ -19,7 +21,8 @@ async def lookup(name, session, cache):
         params={"resource": "acct:{}".format(name)},
     ) as response:
         response.raise_for_status()
-        payload = await response.json()
+        text = await response.read()
+        payload = json.loads(text)
         await cache.set("webfinger:links:{}".format(name), payload)
         return payload