diff --git a/src/backoffice/views/assemblies.py b/src/backoffice/views/assemblies.py
index d5c894fbc64d1872d30c00d28867687532ad1b68..3208942e5a4c5400ec9ddf2ddcff58750cf44964 100644
--- a/src/backoffice/views/assemblies.py
+++ b/src/backoffice/views/assemblies.py
@@ -58,7 +58,12 @@ class CreateAssemblyView(ConferenceLoginRequiredMixin, CreateView):
     template_name = 'backoffice/assembly_create.html'
 
     def dispatch(self, request: HttpRequest, *args, **kwargs) -> HttpResponse:
-        member = ConferenceMember.objects.get(conference=self.conference, user=request.user)
+        if not request.user.is_authenticated:
+            return redirect(f'{reverse('backoffice:login')}?next={reverse('backoffice:assembly-create')}')
+        try:
+            member = ConferenceMember.objects.get(conference=self.conference, user=request.user)
+        except ConferenceMember.DoesNotExist:
+            raise PermissionDenied
         if (member.is_staff and member.has_perms('core.assembly_team')) or self.conference.is_open:
             return super().dispatch(request, *args, **kwargs)