AH01215: Traceback (most recent call last):: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3.8/wsgiref/handlers.py", line 137, in run: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: self.result = application(self.environ, self.start_response): /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/flask/app.py", line 2463, in __call__: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: return self.wsgi_app(environ, start_response): /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/werkzeug/middleware/proxy_fix.py", line 232, in __call__: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: return self.app(environ, start_response): /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/flask/app.py", line 2449, in wsgi_app: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: response = self.handle_exception(e): /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/flask/app.py", line 1866, in handle_exception: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: reraise(exc_type, exc_value, tb): /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/flask/_compat.py", line 39, in reraise: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: raise value: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/flask/app.py", line 2446, in wsgi_app: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: response = self.full_dispatch_request(): /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/flask/app.py", line 1951, in full_dispatch_request: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: rv = self.handle_user_exception(e): /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/flask/app.py", line 1820, in handle_user_exception: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: reraise(exc_type, exc_value, tb): /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/flask/_compat.py", line 39, in reraise: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: raise value: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/flask/app.py", line 1949, in full_dispatch_request: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: rv = self.dispatch_request(): /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/usr/lib/python3/dist-packages/flask/app.py", line 1935, in dispatch_request: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: return self.view_functions[rule.endpoint](**req.view_args): /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: File "/var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request/app.py", line 231, in index_root: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: return HTML.format(LOGOUT + success).format(: /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
AH01215: KeyError: 'nickname': /var/lib/juju/agents/unit-autopkgtest-web-20/charm/webcontrol/request.cgi
This could be due to the fact that logging in doesn't work in staging...
Looking at request/app.py we can see the following:
230 return HTML.format(LOGOUT + success).format(
231 **ChainMap(session, params))
However, elsewhere LOGOUT is only used if nickname is available:
88 if 'nickname' in session: format( **session)
89 html = LOGOUT.
90 else:
91 html = ''
I didn't immediately see a trivial fix for it so am going to leave this here.