latenighttales/alcali

"Jids matching query does not exist" when fetching jobs

SGA-max-faxalv opened this issue · 2 comments

Describe the bug
When loading jobs on the Jobs page, this crashes with an error. Truncating tables salt_returns and jids temporarily fixes the error, but problem soon reoccurs without determined reason. Looking at the two tables, there are JID's in salt_returns (70 rows) which do not exist in the jids table (only 34 rows). It therefore crashes trying to load the associate Jids model to the SaltReturns model.

Running version "3000.1" with salt version 3004. Using following relevant master configuration:

# Store results in MySQL and alcali
#event_return: mysql
event_return: [mysql, alcali]
master_job_cache: alcali

# Mysql Settings
mysql.host: "{{ salt['pillar.get']('salt_master:mysql_host', 'localhost') }}"
mysql.user: "{{ salt['pillar.get']('salt_master:mysql_user', 'root') }}"
mysql.pass: "{{ salt['pillar.get']('salt_master:mysql_pass', 'password') }}"
mysql.db: 'salt'
mysql.port: 3306

and have the custom returner confirmed to be working. The alcali installation is installed via the alcali-formula.

To Reproduce
Steps to reproduce the behavior:

  1. Enable Debug in Django and restart the service with systemctl restart alcali.
    This was done by adding:

    from django.conf import settings
    settings.DEBUG = True

    to line 3 in api/urls.py.

  2. Go to the "Jobs" page

  3. See error in syslog

Expected behavior
Expected the list of jobs to load without error.

Screenshots

[09/Mar/2022 13:40:09] "GET /api/jobs/filters/ HTTP/1.1" 200 106
Internal Server Error: /api/jobs/
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/views.py", line 505, in dispatch
    response = self.handle_exception(exc)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/views.py", line 465, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/views.py", line 476, in raise_uncaught_exception
    raise exc
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/views.py", line 502, in dispatch
    response = handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/generics.py", line 199, in get
    return self.list(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/mixins.py", line 46, in list
    return Response(serializer.data)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/serializers.py", line 760, in data
    ret = super().data
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/serializers.py", line 260, in data
    self._data = self.to_representation(self.instance)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/serializers.py", line 677, in to_representation
    return [
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/serializers.py", line 678, in <listcomp>
    self.child.to_representation(item) for item in iterable
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/serializers.py", line 516, in to_representation
    attribute = field.get_attribute(instance)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/fields.py", line 454, in get_attribute
    return get_attribute(instance, self.source_attrs)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/fields.py", line 99, in get_attribute
    instance = instance()
  File "/opt/alcali/code/api/models.py", line 51, in user
    return Jids.objects.get(jid=self.jid).user()
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/db/models/query.py", line 415, in get
    raise self.model.DoesNotExist(
api.models.Jids.DoesNotExist: Jids matching query does not exist.
[09/Mar/2022 13:40:09] "GET /api/jobs/ HTTP/1.1" 500 20210

All jobs fail to load:
image

Desktop (please complete the following information):

  • OS: [e.g. iOS] Ubuntu 20.04 LTS
  • Browser [e.g. chrome, safari] Firefox
  • Version [e.g. 22] 98

Additional context

Django Error

This is while running with $ DEBUG=True python3 code/manage.py runserver --traceback 0.0.0.0:8000 as the alcali user from the /opt/alcali directory. (This is why the SUDO variables appear, had to sudo into root and then su into alcali)

EXPAND - Django Error Request - /api/jobs/ failing with 500 Internal Server Error
DoesNotExist at /api/jobs/
Jids matching query does not exist.

Request Method: GET
Request URL: http://REDACTED:8000/api/jobs/
Django Version: 3.0.5
Python Executable: /usr/bin/python3
Python Version: 3.8.10
Python Path: ['/opt/alcali/code', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/opt/alcali/.local/lib/python3.8/site-packages', '/usr/local/lib/python3.8/dist-packages', '/usr/local/lib/python3.8/dist-packages/alcali-3000.1.0-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/whitenoise-5.0.1-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/salt_pepper-0.7.5-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/requests-2.23.0-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/python_dotenv-0.12.0-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/gunicorn-20.0.4-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/djangorestframework_simplejwt-4.4.0-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/django_currentuser-0.5.0-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/django_cors_headers-3.2.1-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/ansi2html-1.5.2-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/sqlparse-0.4.2-py3.8.egg', '/usr/local/lib/python3.8/dist-packages/asgiref-3.5.0-py3.8.egg', '/usr/lib/python3/dist-packages']
Server time: Wed, 9 Mar 2022 13:55:16 -0600
Installed Applications:
['api.apps.ApiConfig',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'whitenoise.runserver_nostatic',
 'django.contrib.staticfiles',
 'rest_framework',
 'corsheaders']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'corsheaders.middleware.CorsMiddleware',
 'whitenoise.middleware.WhiteNoiseMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django_currentuser.middleware.ThreadLocalUserMiddleware']


Traceback (most recent call last):
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/views.py", line 505, in dispatch
    response = self.handle_exception(exc)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/views.py", line 465, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/views.py", line 476, in raise_uncaught_exception
    raise exc
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/views.py", line 502, in dispatch
    response = handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/generics.py", line 199, in get
    return self.list(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/mixins.py", line 46, in list
    return Response(serializer.data)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/serializers.py", line 760, in data
    ret = super().data
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/serializers.py", line 260, in data
    self._data = self.to_representation(self.instance)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/serializers.py", line 677, in to_representation
    return [
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/serializers.py", line 678, in <listcomp>
    self.child.to_representation(item) for item in iterable
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/serializers.py", line 516, in to_representation
    attribute = field.get_attribute(instance)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/fields.py", line 454, in get_attribute
    return get_attribute(instance, self.source_attrs)
  File "/usr/local/lib/python3.8/dist-packages/djangorestframework-3.11.0-py3.8.egg/rest_framework/fields.py", line 99, in get_attribute
    instance = instance()
  File "/opt/alcali/code/api/models.py", line 51, in user
    return Jids.objects.get(jid=self.jid).user()
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/Django-3.0.5-py3.8.egg/django/db/models/query.py", line 415, in get
    raise self.model.DoesNotExist(

Exception Type: DoesNotExist at /api/jobs/
Exception Value: Jids matching query does not exist.
Request information:
USER: admin

GET: No GET data

POST: No POST data

FILES: No FILES data

COOKIES:
grafana_session = 'REDACTED'
csrftoken = 'REDACTED'

META:
ALLOWED_HOSTS = '*'
AUTH_BACKEND = 'None'
CONTENT_LENGTH = ''
CONTENT_TYPE = 'text/plain'
CSRF_COOKIE = 'REDACTED'
DB_BACKEND = 'mysql'
DB_HOST = 'REDACTED'
DB_NAME = 'salt'
DB_PASS = 'REDACTED'
DB_PORT = '3306'
DB_USER = 'REDACTED'
DEBUG = 'True'
DJANGO_SETTINGS_MODULE = 'config.settings'
GATEWAY_INTERFACE = 'CGI/1.1'
HOME = '/opt/alcali'
HTTP_ACCEPT = 'application/json, text/plain, */*'
HTTP_ACCEPT_ENCODING = 'gzip, deflate'
HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.5'
HTTP_AUTHORIZATION = 'Bearer REDACTED'
HTTP_CACHE_CONTROL = 'max-age=0'
HTTP_CONNECTION = 'keep-alive'
HTTP_COOKIE = 'grafana_session=REDACTED; csrftoken=REDACTED'
HTTP_HOST = 'REDACTED:8000'
HTTP_REFERER = 'http://REDACTED:8000/'
HTTP_USER_AGENT = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:98.0) Gecko/20100101 Firefox/98.0'
HTTP_X_CSRFTOKEN = 'REDACTED'
KRB5CCNAME = 'FILE:/tmp/REDACTED'
LANG = 'C.UTF-8'
LESSCLOSE = '/usr/bin/lesspipe %s %s'
LESSOPEN = '| /usr/bin/lesspipe %s'
LOGNAME = 'alcali'
LS_COLORS = -snip-
MAIL = '/var/mail/alcali'
MASTER_MINION_ID = 'REDACTED'
OLDPWD = '/opt/alcali/code'
PATH = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'
PATH_INFO = '/api/jobs/'
PWD = '/opt/alcali'
QUERY_STRING = ''
REMOTE_ADDR = 'REDACTED'
REMOTE_HOST = ''
REQUEST_METHOD = 'GET'
RUN_MAIN = 'true'
SALT_AUTH = 'rest'
SALT_URL = 'https://REDACTED:8080'
SCRIPT_NAME = ''
SECRET_KEY = 'REDACTED'
SERVER_NAME = 'REDACTED'
SERVER_PORT = '8000'
SERVER_PROTOCOL = 'HTTP/1.1'
SERVER_SOFTWARE = 'WSGIServer/0.2'
SHELL = '/bin/sh'
SHLVL = '2'
SUDO_COMMAND = '/usr/bin/su'
SUDO_GID = 'REDACTED'
SUDO_UID = 'REDACTED'
SUDO_USER = 'REDACTED'
TERM = 'screen'
TZ = 'America/Chicago'
USER = 'alcali'
_ = '/usr/bin/python3'
wsgi.errors = <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>
wsgi.file_wrapper = ''
wsgi.input = <django.core.handlers.wsgi.LimitedStream object at 0x7faa6f3f5820>
wsgi.multiprocess = False
wsgi.multithread = True
wsgi.run_once = False
wsgi.url_scheme = 'http'
wsgi.version = '(1, 0)'

Settings:
Using settings module config.settings
ABSOLUTE_URL_OVERRIDES = {}
ADMINS = []
ALLOWED_HOSTS = ['*']
APPEND_SLASH = True
AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS = '********************'
AUTH_USER_MODEL = 'auth.User'
BASE_DIR = '/opt/alcali/code'
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
CACHE_MIDDLEWARE_SECONDS = 600
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = False
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SAMESITE = 'Lax'
CSRF_COOKIE_SECURE = False
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = []
CSRF_USE_SESSIONS = False
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', 'NAME': 'salt', 'USER': 'REDACTED', 'PASSWORD': 'REDACTED', 'HOST': 'REDACTED', 'PORT': '3306', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
DATABASE_ROUTERS = []
DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
DATETIME_FORMAT = 'N j, Y, P'
DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y']
DATE_FORMAT = 'N j, Y'
DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DB_BACKEND = 'mysql'
DEBUG = True
DEBUG_PROPAGATE_EXCEPTIONS = False
DECIMAL_SEPARATOR = '.'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_TABLESPACE = ''
DISALLOWED_USER_AGENTS = []
DJANGO_DEBUG = False
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_HOST_PASSWORD = '********************'
EMAIL_HOST_USER = ''
EMAIL_PORT = 25
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = '********************'
EMAIL_SUBJECT_PREFIX = '[Django] '
EMAIL_TIMEOUT = None
EMAIL_USE_LOCALTIME = False
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
FILE_CHARSET = 'utf-8'
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = 420
FILE_UPLOAD_TEMP_DIR = None
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = []
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
IGNORABLE_404_URLS = []
INSTALLED_APPS = ['api.apps.ApiConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'whitenoise.runserver_nostatic', 'django.contrib.staticfiles', 'rest_framework', 'corsheaders']
INTERNAL_IPS = []
LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
LANGUAGE_CODE = 'en-us'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_HTTPONLY = False
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LANGUAGE_COOKIE_SAMESITE = None
LANGUAGE_COOKIE_SECURE = False
LOCALE_PATHS = []
LOGGING = {}
LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = '/accounts/profile/'
LOGIN_URL = '/accounts/login/'
LOGOUT_REDIRECT_URL = None
MANAGERS = []
MEDIA_ROOT = ''
MEDIA_URL = ''
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django_currentuser.middleware.ThreadLocalUserMiddleware']
MIGRATION_MODULES = {}
MONTH_DAY_FORMAT = 'F j'
NUMBER_GROUPING = 0
PASSWORD_HASHERS = '********************'
PASSWORD_RESET_TIMEOUT_DAYS = '********************'
PREPEND_WWW = False
REST_FRAMEWORK = {'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',), 'DEFAULT_AUTHENTICATION_CLASSES': ['rest_framework_simplejwt.authentication.JWTAuthentication']}
ROOT_URLCONF = 'config.urls'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = False
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = False
SECURE_HSTS_PRELOAD = False
SECURE_HSTS_SECONDS = 0
SECURE_PROXY_SSL_HEADER = None
SECURE_REDIRECT_EXEMPT = []
SECURE_REFERRER_POLICY = None
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = False
SERVER_EMAIL = 'root@localhost'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 1209600
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SAMESITE = 'Lax'
SESSION_COOKIE_SECURE = False
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE = 'config.settings'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
STATICFILES_DIRS = []
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
STATIC_ROOT = '/opt/alcali/code/dist/static'
STATIC_URL = '/static/'
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/opt/alcali/code/dist'], 'APP_DIRS': True, 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}]
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'P'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE = 'America/Chicago'
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = False
USE_X_FORWARDED_HOST = False
USE_X_FORWARDED_PORT = False
VERSION = '3000.1.0\n'
WSGI_APPLICATION = 'config.wsgi.application'
X_FRAME_OPTIONS = 'DENY'
YEAR_MONTH_FORMAT = 'F Y'


You're seeing this error because you have DEBUG = True in your
Django settings file. Change that to False, and Django will
display a standard page generated by the handler for this status code.

Hope this helps! Please let me know if there is anything you want me to try.

No longer able to reproduce this. Will re-open if it happens again.