Truenas install never brings up firstrun after setup

Hoping someone can help. I have installed Gramps Web using the TrueNas Scale App catalog, following the directions on the grampsweb site.

Everything seems to install fine, however the firstrun screen never runs to be able to setup everything.

Once the install is done, and you launch the installation, it brings you to a Login Screen, which doesn’t let you do anything since the firstrun has not set an Admin for the site.

Anyone else have this happen and been able to solve it?

Gramps Web Version: 26.5.2
Truenas Version: 1.3.15

Anything in the logs? Can you post a screenshot if the environment variable section in the config?

Below are the screenshots of my environment variables in Truenas and the log file. It seems to be failing on line 22 of the until.py (expecting a string value)

Log file:

{\rtf1\ansi\ansicpg1252\cocoartf2870
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\froman\fcharset0 Times-Roman;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
{*\expandedcolortbl;;\cssrgb\c0\c0\c0;}
\margl1440\margr1440\vieww19860\viewh16500\viewkind0
\deftab720
\pard\pardeftab720\partightenfactor0

\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
\outl0\strokewidth0 \strokec2 2026-05-20 15:35:20.078208+00:00 2026-05-20T15:35:20.078208572Z
2026-05-20 15:35:20.078272+00:00 (main.py:7): Gtk-CRITICAL **: 11:35:20.078: gtk_icon_theme_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
2026-05-20 15:35:20.690733+00:00 /app/src/gramps_webapi/app.py:91: UserWarning: Setting the SECRET_KEY config option via the SECRET_KEY environment variable is deprecated and will stop working in the future. Please use GRAMPSWEB_SECRET_KEY instead.
2026-05-20 15:35:20.690792+00:00 warnings.warn(
2026-05-20 15:35:21.468989+00:00 INFO [alembic.runtime.migration] Context impl SQLiteImpl.
2026-05-20 15:35:21.469025+00:00 INFO [alembic.runtime.migration] Will assume non-transactional DDL.
2026-05-20 15:35:22.163685+00:00 [2026-05-20 11:35:22 -0400] [17] [INFO] Starting gunicorn 26.0.0
2026-05-20 15:35:22.163889+00:00 [2026-05-20 11:35:22 -0400] [17] [INFO] Listening at: http://0.0.0.0:5000 (17)
2026-05-20 15:35:22.163942+00:00 [2026-05-20 11:35:22 -0400] [17] [INFO] Using worker: sync
2026-05-20 15:35:22.165966+00:00 [2026-05-20 11:35:22 -0400] [18] [INFO] Booting worker with pid: 18
2026-05-20 15:35:22.188821+00:00 [2026-05-20 11:35:22 -0400] [19] [INFO] Booting worker with pid: 19
2026-05-20 15:35:22.210030+00:00 [2026-05-20 11:35:22 -0400] [20] [INFO] Booting worker with pid: 20
2026-05-20 15:35:22.231978+00:00 [2026-05-20 11:35:22 -0400] [21] [INFO] Booting worker with pid: 21
2026-05-20 15:35:22.324013+00:00 [2026-05-20 11:35:22 -0400] [22] [INFO] Booting worker with pid: 22
2026-05-20 15:35:22.333033+00:00 [2026-05-20 11:35:22 -0400] [23] [INFO] Booting worker with pid: 23
2026-05-20 15:35:22.424070+00:00 [2026-05-20 11:35:22 -0400] [24] [INFO] Booting worker with pid: 24
2026-05-20 15:35:22.437299+00:00 [2026-05-20 11:35:22 -0400] [25] [INFO] Booting worker with pid: 25
2026-05-20 15:35:22.759246+00:00 [2026-05-20 11:35:22 -0400] [17] [INFO] Control socket listening at /root/.gunicorn/gunicorn.ctl
2026-05-20 15:35:26.332161+00:00 2026-05-20T15:35:26.332161430Z
2026-05-20 15:35:26.332197+00:00 (gunicorn:19): Gtk-CRITICAL **: 11:35:26.332: gtk_icon_theme_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
2026-05-20 15:35:27.618487+00:00 2026-05-20T15:35:27.618487244Z
2026-05-20 15:35:27.618521+00:00 (gunicorn:24): Gtk-CRITICAL **: 11:35:27.618: gtk_icon_theme_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
2026-05-20 15:35:28.256042+00:00 2026-05-20T15:35:28.256042092Z
2026-05-20 15:35:28.256089+00:00 (gunicorn:21): Gtk-CRITICAL **: 11:35:28.253: gtk_icon_theme_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
2026-05-20 15:35:28.877578+00:00 2026-05-20T15:35:28.877578951Z
2026-05-20 15:35:28.877608+00:00 (gunicorn:18): Gtk-CRITICAL **: 11:35:28.877: gtk_icon_theme_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
2026-05-20 15:35:29.161833+00:00 /venv/lib/python3.13/site-packages/gramps_webapi/app.py:91: UserWarning: Setting the SECRET_KEY config option via the SECRET_KEY environment variable is deprecated and will stop working in the future. Please use GRAMPSWEB_SECRET_KEY instead.
2026-05-20 15:35:29.161861+00:00 warnings.warn(
2026-05-20 15:35:29.668865+00:00 /venv/lib/python3.13/site-packages/gramps_webapi/app.py:91: UserWarning: Setting the SECRET_KEY config option via the SECRET_KEY environment variable is deprecated and will stop working in the future. Please use GRAMPSWEB_SECRET_KEY instead.
2026-05-20 15:35:29.668917+00:00 warnings.warn(
2026-05-20 15:35:29.731956+00:00 2026-05-20T15:35:29.731956138Z
2026-05-20 15:35:29.731988+00:00 (gunicorn:23): Gtk-CRITICAL **: 11:35:29.726: gtk_icon_theme_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
2026-05-20 15:35:29.736208+00:00 /venv/lib/python3.13/site-packages/gramps_webapi/app.py:91: UserWarning: Setting the SECRET_KEY config option via the SECRET_KEY environment variable is deprecated and will stop working in the future. Please use GRAMPSWEB_SECRET_KEY instead.
2026-05-20 15:35:29.736241+00:00 warnings.warn(
2026-05-20 15:35:29.768035+00:00 2026-05-20T15:35:29.768035033Z
2026-05-20 15:35:29.768075+00:00 (gunicorn:25): Gtk-CRITICAL **: 11:35:29.767: gtk_icon_theme_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
2026-05-20 15:35:29.936020+00:00 2026-05-20T15:35:29.936020736Z
2026-05-20 15:35:29.936058+00:00 (gunicorn:20): Gtk-CRITICAL **: 11:35:29.933: gtk_icon_theme_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
2026-05-20 15:35:30.677104+00:00 2026-05-20T15:35:30.677104815Z
2026-05-20 15:35:30.677144+00:00 (gunicorn:22): Gtk-CRITICAL **: 11:35:30.677: gtk_icon_theme_get_for_screen: assertion ‘GDK_IS_SCREEN (screen)’ failed
2026-05-20 15:35:30.834952+00:00 /venv/lib/python3.13/site-packages/gramps_webapi/app.py:91: UserWarning: Setting the SECRET_KEY config option via the SECRET_KEY environment variable is deprecated and will stop working in the future. Please use GRAMPSWEB_SECRET_KEY instead.
2026-05-20 15:35:30.834988+00:00 warnings.warn(
2026-05-20 15:35:31.223977+00:00 /venv/lib/python3.13/site-packages/gramps_webapi/app.py:91: UserWarning: Setting the SECRET_KEY config option via the SECRET_KEY environment variable is deprecated and will stop working in the future. Please use GRAMPSWEB_SECRET_KEY instead.
2026-05-20 15:35:31.224018+00:00 warnings.warn(
2026-05-20 15:35:31.225192+00:00 /venv/lib/python3.13/site-packages/gramps_webapi/app.py:91: UserWarning: Setting the SECRET_KEY config option via the SECRET_KEY environment variable is deprecated and will stop working in the future. Please use GRAMPSWEB_SECRET_KEY instead.
2026-05-20 15:35:31.225216+00:00 warnings.warn(
2026-05-20 15:35:31.563730+00:00 /venv/lib/python3.13/site-packages/gramps_webapi/app.py:91: UserWarning: Setting the SECRET_KEY config option via the SECRET_KEY environment variable is deprecated and will stop working in the future. Please use GRAMPSWEB_SECRET_KEY instead.
2026-05-20 15:35:31.563774+00:00 warnings.warn(
2026-05-20 15:35:31.773611+00:00 /venv/lib/python3.13/site-packages/gramps_webapi/app.py:91: UserWarning: Setting the SECRET_KEY config option via the SECRET_KEY environment variable is deprecated and will stop working in the future. Please use GRAMPSWEB_SECRET_KEY instead.
2026-05-20 15:35:31.773652+00:00 warnings.warn(
2026-05-20 15:35:46.401016+00:00 [2026-05-20 11:35:46 -0400] [18] [ERROR] Error handling request POST /api/token/create_owner/
2026-05-20 15:35:46.401066+00:00 Traceback (most recent call last):
2026-05-20 15:35:46.401080+00:00 File “/venv/lib/python3.13/site-packages/gunicorn/workers/sync.py”, line 141, in handle
2026-05-20 15:35:46.401107+00:00 self.handle_request(listener, req, client, addr)
2026-05-20 15:35:46.401119+00:00 ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-05-20 15:35:46.401129+00:00 File “/venv/lib/python3.13/site-packages/gunicorn/workers/sync.py”, line 184, in handle_request
2026-05-20 15:35:46.401146+00:00 respiter = self.wsgi(environ, resp.start_response)
2026-05-20 15:35:46.401157+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 1536, in call
2026-05-20 15:35:46.401168+00:00 return self.wsgi_app(environ, start_response)
2026-05-20 15:35:46.401178+00:00 ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
2026-05-20 15:35:46.401193+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 1514, in wsgi_app
2026-05-20 15:35:46.401205+00:00 response = self.handle_exception(e)
2026-05-20 15:35:46.401215+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 1511, in wsgi_app
2026-05-20 15:35:46.401225+00:00 response = self.full_dispatch_request()
2026-05-20 15:35:46.401240+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 919, in full_dispatch_request
2026-05-20 15:35:46.401252+00:00 rv = self.handle_user_exception(e)
2026-05-20 15:35:46.401262+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 917, in full_dispatch_request
2026-05-20 15:35:46.401278+00:00 rv = self.dispatch_request()
2026-05-20 15:35:46.401289+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 902, in dispatch_request
2026-05-20 15:35:46.401300+00:00 return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
2026-05-20 15:35:46.401310+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
2026-05-20 15:35:46.401325+00:00 File “/venv/lib/python3.13/site-packages/flask/views.py”, line 110, in view
2026-05-20 15:35:46.401337+00:00 return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return]
2026-05-20 15:35:46.401347+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
2026-05-20 15:35:46.401362+00:00 File “/venv/lib/python3.13/site-packages/gramps_webapi/api/resources/init.py”, line 51, in dispatch_request
2026-05-20 15:35:46.401374+00:00 return current_app.ensure_sync(meth)(*args, **kwargs)
2026-05-20 15:35:46.401384+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-05-20 15:35:46.401393+00:00 File “/venv/lib/python3.13/site-packages/flask_limiter/_limits.py”, line 326, in __inner
2026-05-20 15:35:46.401410+00:00 return cast(R, flask.current_app.ensure_sync(obj)(*a, **k))
2026-05-20 15:35:46.401422+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
2026-05-20 15:35:46.401432+00:00 File “/venv/lib/python3.13/site-packages/flask_smorest/response.py”, line 89, in wrapper
2026-05-20 15:35:46.401449+00:00 current_app.ensure_sync(func)(*args, **kwargs)
2026-05-20 15:35:46.401460+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-05-20 15:35:46.401470+00:00 File “/venv/lib/python3.13/site-packages/webargs/core.py”, line 652, in wrapper
2026-05-20 15:35:46.401480+00:00 return func(*args, **kwargs)
2026-05-20 15:35:46.401497+00:00 File “/venv/lib/python3.13/site-packages/flask_smorest/arguments.py”, line 85, in wrapper
2026-05-20 15:35:46.401509+00:00 return current_app.ensure_sync(func)(*f_args, **f_kwargs)
2026-05-20 15:35:46.401519+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
2026-05-20 15:35:46.401529+00:00 File “/venv/lib/python3.13/site-packages/gramps_webapi/api/resources/token.py”, line 229, in post
2026-05-20 15:35:46.401545+00:00 token = create_access_token(identity=“owner”, additional_claims=claims)
2026-05-20 15:35:46.401556+00:00 File “/venv/lib/python3.13/site-packages/flask_jwt_extended/utils.py”, line 174, in create_access_token
2026-05-20 15:35:46.401567+00:00 return jwt_manager._encode_jwt_from_config(
2026-05-20 15:35:46.401582+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
2026-05-20 15:35:46.401593+00:00 claims=additional_claims,
2026-05-20 15:35:46.401605+00:00 ^^^^^^^^^^^^^^^^^^^^^^^^^
2026-05-20 15:35:46.401615+00:00 …<4 lines>…
2026-05-20 15:35:46.401626+00:00 token_type=“access”,
2026-05-20 15:35:46.401642+00:00 ^^^^^^^^^^^^^^^^^^^^
2026-05-20 15:35:46.401653+00:00 )
2026-05-20 15:35:46.401663+00:00 ^
2026-05-20 15:35:46.401673+00:00 File “/venv/lib/python3.13/site-packages/flask_jwt_extended/jwt_manager.py”, line 515, in _encode_jwt_from_config
2026-05-20 15:35:46.401683+00:00 return _encode_jwt(
2026-05-20 15:35:46.401699+00:00 algorithm=config.algorithm,
2026-05-20 15:35:46.401710+00:00 …<12 lines>…
2026-05-20 15:35:46.401720+00:00 nbf=config.encode_nbf,
2026-05-20 15:35:46.401731+00:00 )
2026-05-20 15:35:46.401741+00:00 File “/venv/lib/python3.13/site-packages/flask_jwt_extended/tokens.py”, line 69, in _encode_jwt
2026-05-20 15:35:46.401757+00:00 return jwt.encode(
2026-05-20 15:35:46.401768+00:00 ~~~~~~~~~~^
2026-05-20 15:35:46.401778+00:00 token_data,
2026-05-20 15:35:46.401788+00:00 ^^^^^^^^^^^
2026-05-20 15:35:46.401797+00:00 …<3 lines>…
2026-05-20 15:35:46.401814+00:00 headers=header_overrides,
2026-05-20 15:35:46.401825+00:00 ^^^^^^^^^^^^^^^^^^^^^^^^^
2026-05-20 15:35:46.401835+00:00 )
2026-05-20 15:35:46.401845+00:00 ^
2026-05-20 15:35:46.401855+00:00 File “/venv/lib/python3.13/site-packages/jwt/api_jwt.py”, line 147, in encode
2026-05-20 15:35:46.401877+00:00 return self._jws.encode(
2026-05-20 15:35:46.401888+00:00 ~~~~~~~~~~~~~~~~^
2026-05-20 15:35:46.401898+00:00 json_payload,
2026-05-20 15:35:46.401908+00:00 ^^^^^^^^^^^^^
2026-05-20 15:35:46.401919+00:00 …<4 lines>…
2026-05-20 15:35:46.401937+00:00 sort_headers=sort_headers,
2026-05-20 15:35:46.401949+00:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-05-20 15:35:46.401959+00:00 )
2026-05-20 15:35:46.401968+00:00 ^
2026-05-20 15:35:46.401978+00:00 File “/venv/lib/python3.13/site-packages/jwt/api_jws.py”, line 190, in encode
2026-05-20 15:35:46.401995+00:00 key = alg_obj.prepare_key(key)
2026-05-20 15:35:46.402007+00:00 File “/venv/lib/python3.13/site-packages/jwt/algorithms.py”, line 326, in prepare_key
2026-05-20 15:35:46.402017+00:00 key_bytes = force_bytes(key)
2026-05-20 15:35:46.402027+00:00 File “/venv/lib/python3.13/site-packages/jwt/utils.py”, line 22, in force_bytes
2026-05-20 15:35:46.402044+00:00 raise TypeError(“Expected a string value”)
2026-05-20 15:35:46.402055+00:00 TypeError: Expected a string value
2026-05-20 17:03:54.277204+00:00 [2026-05-20 13:03:54 -0400] [19] [ERROR] Error handling request POST /api/token/create_owner/
2026-05-20 17:03:54.277268+00:00 Traceback (most recent call last):
2026-05-20 17:03:54.277309+00:00 File “/venv/lib/python3.13/site-packages/gunicorn/workers/sync.py”, line 141, in handle
2026-05-20 17:03:54.277325+00:00 self.handle_request(listener, req, client, addr)
2026-05-20 17:03:54.277338+00:00 ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-05-20 17:03:54.277369+00:00 File “/venv/lib/python3.13/site-packages/gunicorn/workers/sync.py”, line 184, in handle_request
2026-05-20 17:03:54.277392+00:00 respiter = self.wsgi(environ, resp.start_response)
2026-05-20 17:03:54.277406+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 1536, in call
2026-05-20 17:03:54.277427+00:00 return self.wsgi_app(environ, start_response)
2026-05-20 17:03:54.277440+00:00 ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
2026-05-20 17:03:54.277462+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 1514, in wsgi_app
2026-05-20 17:03:54.277476+00:00 response = self.handle_exception(e)
2026-05-20 17:03:54.277489+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 1511, in wsgi_app
2026-05-20 17:03:54.277511+00:00 response = self.full_dispatch_request()
2026-05-20 17:03:54.277525+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 919, in full_dispatch_request
2026-05-20 17:03:54.277537+00:00 rv = self.handle_user_exception(e)
2026-05-20 17:03:54.277549+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 917, in full_dispatch_request
2026-05-20 17:03:54.277570+00:00 rv = self.dispatch_request()
2026-05-20 17:03:54.277584+00:00 File “/venv/lib/python3.13/site-packages/flask/app.py”, line 902, in dispatch_request
2026-05-20 17:03:54.277597+00:00 return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
2026-05-20 17:03:54.277610+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
2026-05-20 17:03:54.277631+00:00 File “/venv/lib/python3.13/site-packages/flask/views.py”, line 110, in view
2026-05-20 17:03:54.277644+00:00 return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return]
2026-05-20 17:03:54.277657+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
2026-05-20 17:03:54.277678+00:00 File “/venv/lib/python3.13/site-packages/gramps_webapi/api/resources/init.py”, line 51, in dispatch_request
2026-05-20 17:03:54.277692+00:00 return current_app.ensure_sync(meth)(*args, **kwargs)
2026-05-20 17:03:54.277705+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-05-20 17:03:54.277718+00:00 File “/venv/lib/python3.13/site-packages/flask_limiter/_limits.py”, line 326, in __inner
2026-05-20 17:03:54.277740+00:00 return cast(R, flask.current_app.ensure_sync(obj)(*a, **k))
2026-05-20 17:03:54.277754+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
2026-05-20 17:03:54.277767+00:00 File “/venv/lib/python3.13/site-packages/flask_smorest/response.py”, line 89, in wrapper
2026-05-20 17:03:54.277788+00:00 current_app.ensure_sync(func)(*args, **kwargs)
2026-05-20 17:03:54.277802+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
2026-05-20 17:03:54.277814+00:00 File “/venv/lib/python3.13/site-packages/webargs/core.py”, line 652, in wrapper
2026-05-20 17:03:54.277827+00:00 return func(*args, **kwargs)
2026-05-20 17:03:54.277848+00:00 File “/venv/lib/python3.13/site-packages/flask_smorest/arguments.py”, line 85, in wrapper
2026-05-20 17:03:54.277862+00:00 return current_app.ensure_sync(func)(*f_args, **f_kwargs)
2026-05-20 17:03:54.277874+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
2026-05-20 17:03:54.277886+00:00 File “/venv/lib/python3.13/site-packages/gramps_webapi/api/resources/token.py”, line 229, in post
2026-05-20 17:03:54.277907+00:00 token = create_access_token(identity=“owner”, additional_claims=claims)
2026-05-20 17:03:54.277921+00:00 File “/venv/lib/python3.13/site-packages/flask_jwt_extended/utils.py”, line 174, in create_access_token
2026-05-20 17:03:54.277934+00:00 return jwt_manager._encode_jwt_from_config(
2026-05-20 17:03:54.277955+00:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
2026-05-20 17:03:54.277969+00:00 claims=additional_claims,
2026-05-20 17:03:54.277981+00:00 ^^^^^^^^^^^^^^^^^^^^^^^^^
2026-05-20 17:03:54.277993+00:00 …<4 lines>…
2026-05-20 17:03:54.278006+00:00 token_type=“access”,
2026-05-20 17:03:54.278031+00:00 ^^^^^^^^^^^^^^^^^^^^
2026-05-20 17:03:54.278045+00:00 )
2026-05-20 17:03:54.278058+00:00 ^
2026-05-20 17:03:54.278070+00:00 File “/venv/lib/python3.13/site-packages/flask_jwt_extended/jwt_manager.py”, line 515, in _encode_jwt_from_config
2026-05-20 17:03:54.278093+00:00 return _encode_jwt(
2026-05-20 17:03:54.278107+00:00 algorithm=config.algorithm,
2026-05-20 17:03:54.278120+00:00 …<12 lines>…
2026-05-20 17:03:54.278132+00:00 nbf=config.encode_nbf,
2026-05-20 17:03:54.278145+00:00 )
2026-05-20 17:03:54.278157+00:00 File “/venv/lib/python3.13/site-packages/flask_jwt_extended/tokens.py”, line 69, in _encode_jwt
2026-05-20 17:03:54.278179+00:00 return jwt.encode(
2026-05-20 17:03:54.278193+00:00 ~~~~~~~~~~^
2026-05-20 17:03:54.278206+00:00 token_data,
2026-05-20 17:03:54.278218+00:00 ^^^^^^^^^^^
2026-05-20 17:03:54.278239+00:00 …<3 lines>…
2026-05-20 17:03:54.278253+00:00 headers=header_overrides,
2026-05-20 17:03:54.278265+00:00 ^^^^^^^^^^^^^^^^^^^^^^^^^
2026-05-20 17:03:54.278278+00:00 )
2026-05-20 17:03:54.278290+00:00 ^
2026-05-20 17:03:54.278302+00:00 File “/venv/lib/python3.13/site-packages/jwt/api_jwt.py”, line 147, in encode
2026-05-20 17:03:54.278324+00:00 return self._jws.encode(
2026-05-20 17:03:54.278337+00:00 ~~~~~~~~~~~~~~~~^
2026-05-20 17:03:54.278350+00:00 json_payload,
2026-05-20 17:03:54.278362+00:00 ^^^^^^^^^^^^^
2026-05-20 17:03:54.278374+00:00 …<4 lines>…
2026-05-20 17:03:54.278395+00:00 sort_headers=sort_headers,
2026-05-20 17:03:54.278409+00:00 ^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-05-20 17:03:54.278422+00:00 )
2026-05-20 17:03:54.278434+00:00 ^
2026-05-20 17:03:54.278446+00:00 File “/venv/lib/python3.13/site-packages/jwt/api_jws.py”, line 190, in encode
2026-05-20 17:03:54.278469+00:00 key = alg_obj.prepare_key(key)
2026-05-20 17:03:54.278483+00:00 File “/venv/lib/python3.13/site-packages/jwt/algorithms.py”, line 326, in prepare_key
2026-05-20 17:03:54.278496+00:00 key_bytes = force_bytes(key)
2026-05-20 17:03:54.278508+00:00 File “/venv/lib/python3.13/site-packages/jwt/utils.py”, line 22, in force_bytes
2026-05-20 17:03:54.278530+00:00 raise TypeError(“Expected a string value”)
2026-05-20 17:03:54.278545+00:00 TypeError: Expected a string value
}