Splitting of JWT into message and signature failed
Summary
The JWT token is expected to be in the format xxxxxx.yyyyyy.zzzzzz. This is not always the case. Then, the message yyyyyy and signature zzzzzz cannot be extracted.
This issue is popping up both in the TrackingServer and in the MantikAPI since they both use the same code.
This issue is caused by mantik-gui#156 (closed). Upon reload of specific pages, the Frontend sends an undefined
Bearer token which in turn cannot be split. This needs to be fixed in mantik-gui
Additional Information
-
Region: eu-central-1
-
Stack Name: MantikStackDev
-
Log Stream: MantikApiServerTask
There also is a JWT_SESSION_ERROR happening in the frontend which is addressed in issue mantik-gui#160 (closed). They might be interlinked.
Steps to reproduce
What is the current bug behavior?
This bug popped up about 11.000 times in one hour, as can be seen in the AWS Error Dashboard (login required)
Relevant logs and/or screenshots
ValueError: not enough values to unpack (expected 2, got 1)
Splitting of JWT into message and signature failed
Traceback (most recent call last):
File "/venv/lib/python3.11/site-packages/mantik_api/tokens/jwt.py", line 157, in _separate_message_and_signature
message, signature = token.rsplit(".", 1)
^^^^^^^^^^^^^^^^^^
What is the expected correct behavior?
The JWT token message and signature get extracted successfully.
Possible Fixes
We need to always send JWT tokens in the correct format.