Requests from remote servers lead to crash
I can follow neither users nor channels on my funkwhale instance from Pleroma. I am able to follow users from another funkwhale instance.
Error:
eb 23 18:52:31 pr-funkwhale gunicorn[3100]: 2021-02-24 00:52:31,574 django.request ERROR Internal Server Error: /federation/actors/testchannel
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: Traceback (most recent call last):
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: response = get_response(request)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: response = self.process_exception_by_middleware(e, request)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: response = wrapped_callback(request, *callback_args, **callback_kwargs)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/usr/lib/python3.8/contextlib.py", line 75, in inner
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: return func(*args, **kwds)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: return view_func(*args, **kwargs)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/rest_framework/viewsets.py", line 114, in view
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: return self.dispatch(request, *args, **kwargs)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/api/funkwhale_api/federation/views.py", line 77, in dispatch
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: return super().dispatch(request, *args, **kwargs)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/rest_framework/views.py", line 505, in dispatch
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: response = self.handle_exception(exc)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/rest_framework/views.py", line 465, in handle_exception
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: self.raise_uncaught_exception(exc)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/rest_framework/views.py", line 476, in raise_uncaught_exception
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: raise exc
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/rest_framework/views.py", line 493, in dispatch
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: self.initial(request, *args, **kwargs)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/rest_framework/views.py", line 410, in initial
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: self.perform_authentication(request)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/rest_framework/views.py", line 324, in perform_authentication
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: request.user
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/rest_framework/request.py", line 220, in user
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: self._authenticate()
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/rest_framework/request.py", line 373, in _authenticate
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: user_auth_tuple = authenticator.authenticate(self)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/api/funkwhale_api/federation/authentication.py", line 89, in authenticate
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: actor = self.authenticate_actor(request)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/api/funkwhale_api/federation/authentication.py", line 66, in authenticate_actor
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: signing.verify_django(request, actor.public_key.encode("utf-8"))
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/api/funkwhale_api/federation/signing.py", line 97, in verify_django
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: return verify(request, public_key)
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/api/funkwhale_api/federation/signing.py", line 48, in verify
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: return requests_http_signature.HTTPSignatureAuth.verify(
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: File "/srv/funkwhale/virtualenv/lib/python3.8/site-packages/requests_http_signature/__init__.py", line 158, in verify
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: created_timestamp = int(sig_struct['created'])
Feb 23 18:52:31 pr-funkwhale gunicorn[3100]: KeyError: 'created'