title: Invalid base64-encoded string: number of data characters (217) cannot be 1 more than a multiple of 4
body: <p>I am learning Django and creating a to-do app using the framework. While setting up the Django rest framework API, I got an unusual error. I've been using Django for quite a while, but have never come across this error before. I don't know why this error is getting thrown.</p>
  <p>The error occurred the very first time when I executed the command <code>manage.py runserver</code> and navigated to <code>users</code>.</p>
  <p>The error is as below:</p>
  <pre><code>Invalid base64-encoded string: number of data characters (217) cannot be 1 more than a multiple of 4
  Request Method: GET
  Request URL:    http://127.0.0.1:8001/users/
  Django Version: 3.1
  Exception Type: Error
  Exception Value:    
  Invalid base64-encoded string: number of data characters (217) cannot be 1 more than a multiple of 4
  Exception Location: /usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/base64.py, line 87, in b64decode
  Python Executable:  /Users/yogendrakumar/PycharmProjects/todo_app/bin/python
  Python Version: 3.8.5
  Python Path:    
  ['/Users/yogendrakumar/PycharmProjects/todo_app',
   '/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python38.zip',
   '/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8',
   '/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/lib-dynload',
   '/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages']
  Server time:    Sat, 29 Aug 2020 12:25:01 +0530
  </code></pre>
  <p><code>views.py</code>:</p>
  <pre><code>from django.contrib.auth.models import User, Group
  from rest_framework import viewsets
  from rest_framework import permissions
  from todo.serializers import UserSerializer, GroupSerializer
  
  
  class UserViewSet(viewsets.ModelViewSet):
      &quot;&quot;&quot;
      API endpoint that allows users to be viewed or edited.
      &quot;&quot;&quot;
      queryset = User.objects.all().order_by('-date_joined')
      serializer_class = UserSerializer
      permission_classes = [permissions.IsAuthenticated]
  
  
  class GroupViewSet(viewsets.ModelViewSet):
      &quot;&quot;&quot;
      API endpoint that allows groups to be viewed or edited.
      &quot;&quot;&quot;
      queryset = Group.objects.all()
      serializer_class = GroupSerializer
      permission_classes = [permissions.IsAuthenticated]
  </code></pre>
  <p>Below is the stack trace/traceback:</p>
  <pre><code>Environment:
  
  
  Request Method: GET
  Request URL: http://127.0.0.1:8001/users/
  
  Django Version: 3.1
  Python Version: 3.8.5
  Installed Applications:
  ['django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'rest_framework',
   'todo']
  Installed Middleware:
  ['django.middleware.security.SecurityMiddleware',
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.common.CommonMiddleware',
   'django.middleware.csrf.CsrfViewMiddleware',
   'django.contrib.auth.middleware.AuthenticationMiddleware',
   'django.contrib.messages.middleware.MessageMiddleware',
   'django.middleware.clickjacking.XFrameOptionsMiddleware']
  
  
  
  Traceback (most recent call last):
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/sessions/backends/base.py&quot;, line 215, in _get_session
      return self._session_cache
  
  During handling of the above exception ('SessionStore' object has no attribute '_session_cache'), another exception occurred:
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/sessions/backends/base.py&quot;, line 118, in decode
      return signing.loads(session_data, salt=self.key_salt, serializer=self.serializer)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/core/signing.py&quot;, line 135, in loads
      base64d = TimestampSigner(key, salt=salt).unsign(s, max_age=max_age).encode()
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/core/signing.py&quot;, line 201, in unsign
      result = super().unsign(value)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/core/signing.py&quot;, line 184, in unsign
      raise BadSignature('Signature &quot;%s&quot; does not match' % sig)
  
  During handling of the above exception (Signature &quot;xnqTuv_ylPs2HNImqZUFHZYYDRY5IfETbWXc5_4zbB8&quot; does not match), another exception occurred:
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/core/handlers/exception.py&quot;, line 47, in inner
      response = get_response(request)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/core/handlers/base.py&quot;, line 179, in _get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/views/decorators/csrf.py&quot;, line 54, in wrapped_view
      return view_func(*args, **kwargs)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/rest_framework/viewsets.py&quot;, line 114, in view
      return self.dispatch(request, *args, **kwargs)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/rest_framework/views.py&quot;, line 505, in dispatch
      response = self.handle_exception(exc)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/rest_framework/views.py&quot;, line 465, in handle_exception
      self.raise_uncaught_exception(exc)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/rest_framework/views.py&quot;, line 476, in raise_uncaught_exception
      raise exc
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/rest_framework/views.py&quot;, line 493, in dispatch
      self.initial(request, *args, **kwargs)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/rest_framework/views.py&quot;, line 410, in initial
      self.perform_authentication(request)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/rest_framework/views.py&quot;, line 324, in perform_authentication
      request.user
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/rest_framework/request.py&quot;, line 220, in user
      self._authenticate()
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/rest_framework/request.py&quot;, line 373, in _authenticate
      user_auth_tuple = authenticator.authenticate(self)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/rest_framework/authentication.py&quot;, line 123, in authenticate
      if not user or not user.is_active:
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/utils/functional.py&quot;, line 240, in inner
      self._setup()
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/utils/functional.py&quot;, line 376, in _setup
      self._wrapped = self._setupfunc()
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/auth/middleware.py&quot;, line 23, in &lt;lambda&gt;
      request.user = SimpleLazyObject(lambda: get_user(request))
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/auth/middleware.py&quot;, line 11, in get_user
      request._cached_user = auth.get_user(request)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/auth/__init__.py&quot;, line 174, in get_user
      user_id = _get_user_session_key(request)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/auth/__init__.py&quot;, line 58, in _get_user_session_key
      return get_user_model()._meta.pk.to_python(request.session[SESSION_KEY])
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/sessions/backends/base.py&quot;, line 65, in __getitem__
      return self._session[key]
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/sessions/backends/base.py&quot;, line 220, in _get_session
      self._session_cache = self.load()
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/sessions/backends/db.py&quot;, line 44, in load
      return self.decode(s.session_data) if s else {}
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/sessions/backends/base.py&quot;, line 122, in decode
      return self._legacy_decode(session_data)
    File &quot;/Users/yogendrakumar/PycharmProjects/todo_app/lib/python3.8/site-packages/django/contrib/sessions/backends/base.py&quot;, line 126, in _legacy_decode
      encoded_data = base64.b64decode(session_data.encode('ascii'))
    File &quot;/usr/local/Cellar/python@3.8/3.8.5/Frameworks/Python.framework/Versions/3.8/lib/python3.8/base64.py&quot;, line 87, in b64decode
      return binascii.a2b_base64(s)
  
  Exception Type: Error at /users/
  Exception Value: Invalid base64-encoded string: number of data characters (217) cannot be 1 more than a multiple of 4
  </code></pre>
  <p><code>serializers.py</code>:</p>
  <pre><code>from django.contrib.auth.models import User, Group
  from rest_framework import serializers
  
  
  class UserSerializer(serializers.HyperlinkedModelSerializer):
      class Meta:
          model = User
          fields = ['url', 'username', 'email', 'groups']
  
  
  class GroupSerializer(serializers.HyperlinkedModelSerializer):
      class Meta:
          model = Group
          fields = ['url', 'name']
  </code></pre>