diff --git a/api/funkwhale_api/instance/views.py b/api/funkwhale_api/instance/views.py
index 7117d1a143e023df5e0c0cb55ef02e7f0a00e60b..f6d1794afce4104ffc944b6122aa4429e3c68dd6 100644
--- a/api/funkwhale_api/instance/views.py
+++ b/api/funkwhale_api/instance/views.py
@@ -1,4 +1,5 @@
import json
+import logging
from django.conf import settings
@@ -18,6 +19,9 @@ from . import nodeinfo
NODEINFO_2_CONTENT_TYPE = "application/json; profile=http://nodeinfo.diaspora.software/ns/schema/2.0#; charset=utf-8" # noqa
+logger = logging.getLogger(__name__)
+
+
class AdminSettings(preferences_viewsets.GlobalPreferencesViewSet):
pagination_class = None
permission_classes = [oauth_permissions.ScopePermission]
@@ -44,7 +48,11 @@ class NodeInfo(views.APIView):
authentication_classes = []
def get(self, request, *args, **kwargs):
- data = nodeinfo.get()
+ try:
+ data = nodeinfo.get()
+ except ValueError:
+ logger.warn("nodeinfo returned invalid json")
+ data = {}
return Response(data, status=200, content_type=NODEINFO_2_CONTENT_TYPE)