diff --git a/api/funkwhale_api/common/cache.py b/api/funkwhale_api/common/cache.py
index d98b73797..d2ea0c912 100644
--- a/api/funkwhale_api/common/cache.py
+++ b/api/funkwhale_api/common/cache.py
@@ -8,7 +8,7 @@ logger = logging.getLogger(__name__)
class RedisClient(default.DefaultClient):
def get(self, key, default=None, version=None, client=None):
try:
- return super().get(key, default=None, version=None, client=None)
+ return super().get(key, default=default, version=version, client=client)
except ValueError as e:
if "unsupported pickle protocol" in str(e):
# pickle deserialization error
diff --git a/api/funkwhale_api/subsonic/renderers.py b/api/funkwhale_api/subsonic/renderers.py
index 7390def8b..a1e66cb56 100644
--- a/api/funkwhale_api/subsonic/renderers.py
+++ b/api/funkwhale_api/subsonic/renderers.py
@@ -1,3 +1,4 @@
+import collections
import xml.etree.ElementTree as ET
from rest_framework import renderers
@@ -40,7 +41,7 @@ def structure_payload(data):
payload["error"] = {"code": 0, "message": payload.pop("detail")}
if "error" in payload:
payload["status"] = "failed"
- return payload
+ return collections.OrderedDict(sorted(payload.items(), key=lambda v: v[0]))
class SubsonicJSONRenderer(renderers.JSONRenderer):
diff --git a/api/tests/subsonic/test_renderers.py b/api/tests/subsonic/test_renderers.py
index ffa4aeac5..501ae48ce 100644
--- a/api/tests/subsonic/test_renderers.py
+++ b/api/tests/subsonic/test_renderers.py
@@ -80,7 +80,7 @@ def test_xml_renderer_dict_to_xml():
def test_xml_renderer():
payload = {"hello": "world"}
- expected = '\n' # noqa
+ expected = '\n' # noqa
expected = expected.format(funkwhale_api.__version__).encode()
renderer = renderers.SubsonicXMLRenderer()