From mmarinello@sezf.it Sun Feb 21 11:09:27 2021 From: Marco Marinello To: mailman-users@mailman3.org Subject: [MM3-users] Internal Server Error: /hyperkitty/list/my@lists.domain.eu/pop-threads Date: Sun, 21 Feb 2021 11:09:23 +0000 Message-ID: <161390576355.22358.12216609918763335155@mailman.iad1.psf.io> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5582577184652708469==" --===============5582577184652708469== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Dear all, I've setup my own instance of Hyperkitty working as archiver of a Mailman 3 s= erver. It works fine but, sometimes, I get an email of a Django error: Internal Server Error: /hyperkitty/list/my(a)lists.domain.eu/pop-threads KeyError at /hyperkitty/list/my(a)lists.domain.eu/pop-threads 'file' Request Method: GET Django Version: 2.2.12 Python Executable: /usr/bin/python3 Python Version: 3.7.3 Traceback: File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/exception.p= y" in inner 34. response =3D get_response(request) File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py" in= _get_response 115. response =3D self.process_exception_by_middleware(e, r= equest) File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py" in= _get_response 113. response =3D wrapped_callback(request, *callback_args,= **callback_kwargs) File "/usr/local/lib/python3.7/dist-packages/hyperkitty/lib/view_helpers.py" = in inner 129. if not is_mlist_authorized(request, mlist): File "/usr/local/lib/python3.7/dist-packages/hyperkitty/lib/view_helpers.py" = in is_mlist_authorized 146. if mlist.list_id in get_subscriptions(request.user): File "/usr/local/lib/python3.7/dist-packages/django_mailman3/lib/mailman.py" = in get_subscriptions 130. _get_value, 60, version=3D2) # 1 minute File "/usr/local/lib/python3.7/dist-packages/django/core/cache/backends/base.= py" in get_or_set 167. default =3D default() File "/usr/local/lib/python3.7/dist-packages/django_mailman3/lib/mailman.py" = in _get_value 122. for member in mm_user.subscriptions File "/usr/local/lib/python3.7/dist-packages/mailmanclient/restobjects/user.p= y" in subscriptions 66. 'members/find', data=3D{'subscriber': address}) File "/usr/local/lib/python3.7/dist-packages/mailmanclient/restbase/connectio= n.py" in call 112. error_msg, response, None) During handling of the above exception (HTTP Error 500: Internal Server Error

Internal Server Error

=20 ), another exception occurred: File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/exception.p= y" in inner 34. response =3D get_response(request) File "/usr/local/lib/python3.7/dist-packages/django/utils/deprecation.py" in = __call__ 94. response =3D response or self.get_response(request) File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/exception.p= y" in inner 36. response =3D response_for_exception(request, exc) File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/exception.p= y" in response_for_exception 95. exc_info=3Dsys.exc_info(), File "/usr/local/lib/python3.7/dist-packages/django/utils/log.py" in log_resp= onse 228. exc_info=3Dexc_info, File "/usr/lib/python3.7/logging/__init__.py" in error 1412. self._log(ERROR, msg, args, **kwargs) File "/usr/lib/python3.7/logging/__init__.py" in _log 1519. self.handle(record) File "/usr/lib/python3.7/logging/__init__.py" in handle 1529. self.callHandlers(record) File "/usr/lib/python3.7/logging/__init__.py" in callHandlers 1591. hdlr.handle(record) File "/usr/lib/python3.7/logging/__init__.py" in handle 905. self.emit(record) File "/usr/local/lib/python3.7/dist-packages/django/utils/log.py" in emit 119. reporter =3D ExceptionReporter(request, is_email=3DTrue, *exc_= info) File "/usr/local/lib/python3.7/dist-packages/django/views/debug.py" in __init= __ 254. self.template_info =3D getattr(self.exc_value, 'template_debug= ', None) File "/usr/lib/python3.7/tempfile.py" in __getattr__ 614. file =3D self.__dict__['file'] Exception Type: KeyError at /hyperkitty/list/my(a)lists.domain.eu/pop-threads Exception Value: 'file' Request information: USER: myuser GET: No GET data POST: No POST data FILES: No FILES data Where did I go wrong? Best, Marco --===============5582577184652708469==-- From mark@msapiro.net Sun Feb 21 19:25:09 2021 From: Mark Sapiro To: mailman-users@mailman3.org Subject: [MM3-users] Re: Internal Server Error: /hyperkitty/list/my@lists.domain.eu/pop-threads Date: Sun, 21 Feb 2021 11:24:53 -0800 Message-ID: <2e17585b-6360-43b5-a1f6-2bec6fef839d@msapiro.net> In-Reply-To: <161390576355.22358.12216609918763335155@mailman.iad1.psf.io> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4144996789515680925==" --===============4144996789515680925== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On 2/21/21 3:09 AM, Marco Marinello wrote: > Dear all, >=20 > I've setup my own instance of Hyperkitty working as archiver of a Mailman 3= server. > It works fine but, sometimes, I get an email of a Django error: >=20 > Internal Server Error: /hyperkitty/list/my(a)lists.domain.eu/pop-threads >=20 > KeyError at /hyperkitty/list/my(a)lists.domain.eu/pop-threads > 'file' The above is not the issue. It results from Django trying to look up a log file in the LOGGING configuration. > Request Method: GET > Django Version: 2.2.12 > Python Executable: /usr/bin/python3 > Python Version: 3.7.3 > Traceback: >=20 > File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/exception= .py" in inner > 34. response =3D get_response(request) >=20 > File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py" = in _get_response > 115. response =3D self.process_exception_by_middleware(e,= request) >=20 > File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py" = in _get_response > 113. response =3D wrapped_callback(request, *callback_arg= s, **callback_kwargs) >=20 > File "/usr/local/lib/python3.7/dist-packages/hyperkitty/lib/view_helpers.py= " in inner > 129. if not is_mlist_authorized(request, mlist): >=20 > File "/usr/local/lib/python3.7/dist-packages/hyperkitty/lib/view_helpers.py= " in is_mlist_authorized > 146. if mlist.list_id in get_subscriptions(request.user): >=20 > File "/usr/local/lib/python3.7/dist-packages/django_mailman3/lib/mailman.py= " in get_subscriptions > 130. _get_value, 60, version=3D2) # 1 minute >=20 > File "/usr/local/lib/python3.7/dist-packages/django/core/cache/backends/bas= e.py" in get_or_set > 167. default =3D default() >=20 > File "/usr/local/lib/python3.7/dist-packages/django_mailman3/lib/mailman.py= " in _get_value > 122. for member in mm_user.subscriptions >=20 > File "/usr/local/lib/python3.7/dist-packages/mailmanclient/restobjects/user= .py" in subscriptions > 66. 'members/find', data=3D{'subscriber': address}) >=20 > File "/usr/local/lib/python3.7/dist-packages/mailmanclient/restbase/connect= ion.py" in call > 112. error_msg, response, None) >=20 > During handling of the above exception (HTTP Error 500: > > Internal Server Error > > >

Internal Server Error

> =20 > > What's happening is HyperKitty is trying to determine if the request comes from a list member, and that throws an exception resulting in the 500. What's in Mailman core's mailman.log? Is Mailman core's REST API even accessible from this HyperKitty instance. If not, you can't support private archives and will probably have other issues? --=20 Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan --===============4144996789515680925==-- From mmarinello@sezf.it Mon Feb 22 16:26:09 2021 From: Marco Marinello To: mailman-users@mailman3.org Subject: [MM3-users] Re: Internal Server Error: /hyperkitty/list/my@lists.domain.eu/pop-threads Date: Mon, 22 Feb 2021 16:26:06 +0000 Message-ID: <161401116633.22359.1144629617258422602@mailman.iad1.psf.io> In-Reply-To: <2e17585b-6360-43b5-a1f6-2bec6fef839d@msapiro.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5090170124960034957==" --===============5090170124960034957== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Dear Mark, thank you for your answer. I can confirm my Hyperkitty works just fine for archiving messages. I can eve= n confirm Hyperkitty can reach Mailman REST API. I haven't touched the LOGGING configuration but here you go (can even confirm= hyperkitty.log is filled correctly with logs): # A sample logging configuration. The only tangible logging # performed by this configuration is to send an email to # the site admins on every HTTP 500 error when DEBUG=3DFalse. # See http://docs.djangoproject.com/en/dev/topics/logging for # more details on how to customize your logging configuration. LOGGING =3D { 'version': 1, 'disable_existing_loggers': False, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse' } }, 'handlers': { 'mail_admins': { 'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler' }, 'file':{ 'level': 'INFO', #'class': 'logging.handlers.RotatingFileHandler', 'class': 'logging.handlers.WatchedFileHandler', 'filename': os.path.join(BASE_DIR, 'hyperkitty.log'), 'formatter': 'verbose', }, }, 'loggers': { 'django.request': { 'handlers': ['mail_admins', 'file'], 'level': 'ERROR', 'propagate': True, }, 'django': { 'handlers': ['file'], 'level': 'ERROR', 'propagate': True, }, 'hyperkitty': { 'handlers': ['file'], 'level': 'DEBUG', 'propagate': True, }, }, 'formatters': { 'verbose': { 'format': '%(levelname)s %(asctime)s %(process)d %(name)s %(messa= ge)s' }, 'simple': { 'format': '%(levelname)s %(message)s' }, }, #'root': { # 'handlers': ['file'], # 'level': 'INFO', #}, } In mailman.log, instead, it seems like there's some issue with PostgreSQL [2021-02-21 18:57:19 +0000] [11685] [ERROR] Error handling request /3.1/users= /user(a)example.com Traceback (most recent call last): File "/opt/mailman/venv/lib64/python3.6/site-packages/gunicorn/workers/sync= .py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib64/python3.6/site-packages/gunicorn/workers/sync= .py", line 175, in handle_request respiter =3D self.wsgi(environ, resp.start_response) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/database/tran= saction.py", line 50, in wrapper rtn =3D function(*args, **kws) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/wsgiapp.= py", line 193, in __call__ return super().__call__(environ, start_response) File "falcon/api.py", line 274, in falcon.api.API.__call__ File "falcon/api.py", line 269, in falcon.api.API.__call__ File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/users.py= ", line 211, in on_get okay(response, self._resource_as_json(self._user)) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/helpers.= py", line 124, in _resource_as_json resource =3D self._resource_as_dict(resource) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/users.py= ", line 130, in _resource_as_dict user_id =3D self.api.from_uuid(user.user_id) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/core/api.py",= line 78, in from_uuid return uuid.hex AttributeError: 'NoneType' object has no attribute 'hex' [21/Feb/2021:18:57:19 +0000] "GET /3.1/users/user(a)example.com HTTP/1.1" 500= 0 "-" "-" [2021-02-21 18:57:19 +0000] [11685] [ERROR] Error handling request /3.1/users= /eeb2ainoh0ki8ohL3Renahseiph7AePh Traceback (most recent call last): File "/opt/mailman/venv/lib64/python3.6/site-packages/gunicorn/workers/sync= .py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib64/python3.6/site-packages/gunicorn/workers/sync= .py", line 175, in handle_request respiter =3D self.wsgi(environ, resp.start_response) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/database/tran= saction.py", line 50, in wrapper rtn =3D function(*args, **kws) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/wsgiapp.= py", line 193, in __call__ return super().__call__(environ, start_response) File "falcon/api.py", line 274, in falcon.api.API.__call__ File "falcon/api.py", line 269, in falcon.api.API.__call__ File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/users.py= ", line 208, in on_get if self._user is None: File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/users.py= ", line 204, in _user return user_manager.get_user_by_id(user_id) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/database/tran= saction.py", line 85, in wrapper return function(args[0], config.db.store, *args[1:], **kws) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/model/userman= ager.py", line 96, in get_user_by_id return users.one() File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/query.= py", line 3458, in one ret =3D self.one_or_none() File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/query.= py", line 3427, in one_or_none ret =3D list(self) File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 101, in instances cursor.close() File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/util/langh= elpers.py", line 69, in __exit__ exc_value, with_traceback=3Dexc_tb, File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/util/compa= t.py", line 178, in raise_ raise exception File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 81, in instances rows =3D [proc(row) for row in fetch] File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 81, in rows =3D [proc(row) for row in fetch] File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 525, in _instance tuple([row[column] for column in pk_cols]), File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 525, in tuple([row[column] for column in pk_cols]), File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/engine/res= ult.py", line 686, in _key_fallback replace_context=3Derr, File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/util/compa= t.py", line 178, in raise_ raise exception sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column = 'user.id'" [2021-02-21 18:57:19 +0000] [16321] [ERROR] Error handling request /3.1/users= /Cautah7jael5nieri0jaiRooVi6eech9/addresses Traceback (most recent call last): File "/opt/mailman/venv/lib64/python3.6/site-packages/gunicorn/workers/sync= .py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib64/python3.6/site-packages/gunicorn/workers/sync= .py", line 175, in handle_request respiter =3D self.wsgi(environ, resp.start_response) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/database/tran= saction.py", line 50, in wrapper rtn =3D function(*args, **kws) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/wsgiapp.= py", line 193, in __call__ return super().__call__(environ, start_response) File "falcon/api.py", line 252, in falcon.api.API.__call__ File "falcon/api.py", line 249, in falcon.api.API.__call__ File "falcon/api.py", line 681, in falcon.api.API._get_responder File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/wsgiapp.= py", line 106, in find attribute =3D getattr(resource, name, MISSING) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/users.py= ", line 204, in _user return user_manager.get_user_by_id(user_id) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/database/tran= saction.py", line 85, in wrapper return function(args[0], config.db.store, *args[1:], **kws) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/model/userman= ager.py", line 94, in get_user_by_id if users.count() =3D=3D 0: File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/query.= py", line 3771, in count return self.from_self(col).scalar() File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/query.= py", line 3491, in scalar ret =3D self.one() File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/query.= py", line 3458, in one ret =3D self.one_or_none() File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/query.= py", line 3427, in one_or_none ret =3D list(self) File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 101, in instances cursor.close() File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/util/langh= elpers.py", line 69, in __exit__ exc_value, with_traceback=3Dexc_tb, File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/util/compa= t.py", line 178, in raise_ raise exception File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 61, in instances for query_entity in query._entities File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 61, in for query_entity in query._entities File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/query.= py", line 4817, in row_processor getter =3D result._getter(column) File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/engine/res= ult.py", line 783, in _getter return getter(key, raiseerr) File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/engine/res= ult.py", line 704, in _getter ret =3D self._key_fallback(key, None, raiseerr) File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/engine/res= ult.py", line 686, in _key_fallback replace_context=3Derr, File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/util/compa= t.py", line 178, in raise_ raise exception sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column = 'count(*)'" [21/Feb/2021:18:57:19 +0000] "GET /3.1/users/Cautah7jael5nieri0jaiRooVi6eech9= HTTP/1.1" 500 0 "-" "-" [2021-02-21 18:57:19 +0000] [11685] [ERROR] Error handling request /3.1/membe= rs/find Traceback (most recent call last): File "/opt/mailman/venv/lib64/python3.6/site-packages/gunicorn/workers/sync= .py", line 134, in handle self.handle_request(listener, req, client, addr) File "/opt/mailman/venv/lib64/python3.6/site-packages/gunicorn/workers/sync= .py", line 175, in handle_request respiter =3D self.wsgi(environ, resp.start_response) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/database/tran= saction.py", line 50, in wrapper rtn =3D function(*args, **kws) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/wsgiapp.= py", line 193, in __call__ return super().__call__(environ, start_response) File "falcon/api.py", line 274, in falcon.api.API.__call__ File "falcon/api.py", line 269, in falcon.api.API.__call__ File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/members.= py", line 460, in on_post return self._find(request, response) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/members.= py", line 488, in _find collection =3D resource._make_collection(request, fields) File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/helpers.= py", line 182, in _make_collection entries =3D [as_dict(resource) for resource in collection] File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/helpers.= py", line 182, in entries =3D [as_dict(resource) for resource in collection] File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/utilities/que= ries.py", line 47, in __iter__ yield from self._query File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 101, in instances cursor.close() File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/util/langh= elpers.py", line 69, in __exit__ exc_value, with_traceback=3Dexc_tb, File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/util/compa= t.py", line 178, in raise_ raise exception File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 81, in instances rows =3D [proc(row) for row in fetch] File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 81, in rows =3D [proc(row) for row in fetch] File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 525, in _instance tuple([row[column] for column in pk_cols]), File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/orm/loadin= g.py", line 525, in tuple([row[column] for column in pk_cols]), File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/engine/res= ult.py", line 686, in _key_fallback replace_context=3Derr, File "/opt/mailman/venv/lib64/python3.6/site-packages/sqlalchemy/util/compa= t.py", line 178, in raise_ raise exception sqlalchemy.exc.NoSuchColumnError: "Could not locate column in row for column = '%(140001824334904 anon)s.%(140001822909888 anon)s_member_id'" [21/Feb/2021:18:57:19 +0000] "POST /3.1/members/find HTTP/1.1" 500 0 "-" "-" -Marco --===============5090170124960034957==-- From mark@msapiro.net Wed Feb 24 05:25:50 2021 From: Mark Sapiro To: mailman-users@mailman3.org Subject: [MM3-users] Re: Internal Server Error: /hyperkitty/list/my@lists.domain.eu/pop-threads Date: Tue, 23 Feb 2021 21:25:37 -0800 Message-ID: <18915dc5-f06b-df75-5d89-6fcc6dd0bb19@msapiro.net> In-Reply-To: <161401116633.22359.1144629617258422602@mailman.iad1.psf.io> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============0669182876546060292==" --===============0669182876546060292== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On 2/22/21 8:26 AM, Marco Marinello wrote: > Dear Mark, >=20 > thank you for your answer. > I can confirm my Hyperkitty works just fine for archiving messages. I can e= ven confirm Hyperkitty can reach Mailman REST API. > I haven't touched the LOGGING configuration but here you go (can even confi= rm hyperkitty.log is filled correctly with logs): What I was trying to say is this KeyError at /hyperkitty/list/my(a)lists.domain.eu/pop-threads 'file' exception often occurs in messages sent by Django to site admins and is never actually relates to the real problem and should just be ignored. > In mailman.log, instead, it seems like there's some issue with PostgreSQL >=20 > [2021-02-21 18:57:19 +0000] [11685] [ERROR] Error handling request /3.1/use= rs/user(a)example.com > Traceback (most recent call last): > File "/opt/mailman/venv/lib64/python3.6/site-packages/gunicorn/workers/sy= nc.py", line 134, in handle > self.handle_request(listener, req, client, addr) > File "/opt/mailman/venv/lib64/python3.6/site-packages/gunicorn/workers/sy= nc.py", line 175, in handle_request > respiter =3D self.wsgi(environ, resp.start_response) > File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/database/tr= ansaction.py", line 50, in wrapper > rtn =3D function(*args, **kws) > File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/wsgiap= p.py", line 193, in __call__ > return super().__call__(environ, start_response) > File "falcon/api.py", line 274, in falcon.api.API.__call__ > File "falcon/api.py", line 269, in falcon.api.API.__call__ > File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/users.= py", line 211, in on_get > okay(response, self._resource_as_json(self._user)) > File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/helper= s.py", line 124, in _resource_as_json > resource =3D self._resource_as_dict(resource) > File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/users.= py", line 130, in _resource_as_dict > user_id =3D self.api.from_uuid(user.user_id) > File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/core/api.py= ", line 78, in from_uuid > return uuid.hex > AttributeError: 'NoneType' object has no attribute 'hex' > [21/Feb/2021:18:57:19 +0000] "GET /3.1/users/user(a)example.com HTTP/1.1" 5= 00 0 "-" "-" I think this is the real issue. HyperKitty is trying to get the user information from core for user(a)example.com and this is throwing the AttributeError resulting in the 500. This is most likely some kind of database issue. at this point > File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/users.= py", line 211, in on_get > okay(response, self._resource_as_json(self._user)) self._user is not None, but at this point > File "/opt/mailman/venv/lib64/python3.6/site-packages/mailman/rest/users.= py", line 130, in _resource_as_dict > user_id =3D self.api.from_uuid(user.user_id) user.user_id is None. If I were you, I would look at the database. First, I would find the entry in the address table. I.e., select user_id from address where email =3D 'user(a)example.com'; then the uid select uid from uid where id =3D I suspect there is no uid entry for this id. You might get more information from $ /opt/mailman/mm/bin/mailman shell Welcome to the GNU Mailman shell Use commit() to commit changes. Use abort() to discard changes since the last commit. Exit with ctrl+D does an implicit commit() but exit() does not. >>> um =3D getUtility(IUserManager) >>> usr =3D um.get_user('user(a)example.com') which I suspect will also throw an exception, but if not >>> usr.id should return the id found by select user_id from address where email =3D 'user(a)example.com'; and >>> usr.user_id should return the uiud which should not be None --=20 Mark Sapiro The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan --===============0669182876546060292==--