element-hq / element-hq/synapse
500 error when `auth` is `null` for a UIA request
- Dominant language
- Python
- Stars
- 4.6k
- Forks
- 600
- Avg merge
- 5d 22h
- Merged PRs (30d)
- 51
Description
This issue has been migrated from [#15871](https://github.com/matrix-org/synapse/issues/15871).
---
If you make a request that requires user-interactive auth, and set `{"auth": null}`, synapse returns a 500 error with the following stacktrace:
```
2023-07-03 16:11:39,547 - synapse.http.server - 134 - ERROR - POST-36820 - Failed handle request via 'SigningKeyUploadServlet':
Capture point (most recent call last):
File "", line 1, in
File "/home/synapse/src/synapse/synapse/app/homeserver.py", line 394, in main
run(hs)
File "/home/synapse/src/synapse/synapse/app/homeserver.py", line 380, in run
logger=logger,
File "/home/synapse/src/synapse/synapse/app/_base.py", line 196, in start_reactor
run()
File "/home/synapse/src/synapse/synapse/app/_base.py", line 178, in run
run_command()
File "/home/synapse/src/synapse/synapse/app/_base.py", line 153, in
run_command: Callable[[], None] = lambda: reactor.run(),
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/base.py", line 1318, in run
self.mainLoop()
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/base.py", line 1328, in mainLoop
reactorBaseSelf.runUntilCurrent()
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/base.py", line 967, in runUntilCurrent
f(*a, **kw)
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 696, in callback
self._startRunCallbacks(result)
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 798, in _startRunCallbacks
self._runCallbacks()
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 893, in _runCallbacks
current.result, *args, **kwargs
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 1792, in gotResult
_inlineCallbacks(r, gen, status, context)
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 1782, in _inlineCallbacks
status.deferred.callback(callbackValue)
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 696, in callback
self._startRunCallbacks(result)
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 798, in _startRunCallbacks
self._runCallbacks()
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 893, in _runCallbacks
current.result, *args, **kwargs
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 696, in callback
self._startRunCallbacks(result)
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 798, in _startRunCallbacks
self._runCallbacks()
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 893, in _runCallbacks
current.result, *args, **kwargs
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 1792, in gotResult
_inlineCallbacks(r, gen, status, context)
File "/home/synapse/poetry-env/matrix-synapse-o-qzlfnx-py3.7/lib/python3.7/site-packages/twisted/internet/defer.py", line 1697, in _inlineCallbacks
result = context.run(gen.send, result)
File "/home/synapse/src/synapse/synapse/http/server.py", line 235, in wrapped_async_request_handler
await h(self, request)
Traceback (most recent call last):
File "/home/synapse/src/synapse/synapse/http/server.py", line 313, in _async_render_wrapper
callback_return = await self._async_render(request)
File "/home/synapse/src/synapse/synapse/http/server.py", line 523, in _async_render
callback_return = await raw_callback_return
File "/home/synapse/src/synapse/synapse/rest/client/_base.py", line 102, in wrapped
return await orig(*args, **kwargs)
File "/home/synapse/src/synapse/synapse/rest/client/keys.py", line 399, in on_POST
can_skip_ui_auth=True,
File "/home/synapse/src/synapse/synapse/handlers/auth.py", line 360, in validate_user_via_ui_auth
get_new_session_data,
File "/home/synapse/src/synapse/synapse/handlers/auth.py", line 481, in check_ui_auth
if "session" in authdict:
TypeError: argument of type 'NoneType' is not iterable
```
Contributor guide
Assessment
This issue has not been assessed yet.