[2026-04-03 11:23:06,630] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/workspace/app.py", line 338, in index
    return flask.render_template('index.html',
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
                                 default_domain=flask.session.get('default-domain', None),
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                 suggested_domains=flask.session.get('suggested-domains', []),
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                 batches=batch_store.get_batches_slice(offset=0, limit=10),
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                 read_only_reason=app.config.get('READ_ONLY_REASON'))
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/flask/templating.py", line 150, in render_template
    return _render(app, template, context)
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/flask/templating.py", line 131, in _render
    rv = template.render(context)
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/jinja2/environment.py", line 1295, in render
    self.environment.handle_exception()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/jinja2/environment.py", line 942, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "/workspace/templates/index.html", line 1, in top-level template code
    {% extends "base.html" %}
  File "/workspace/templates/base.html", line 21, in top-level template code
    {{ authentication_area() }}
    ^^^^^^^^^^^^^^^^^^^
  File "/workspace/app.py", line 151, in authentication_area
    raise e
  File "/workspace/app.py", line 140, in authentication_area
    response = session.get(action='query',
                           meta=['userinfo', 'notifications'],
                           notcrosswikisummary=True,
                           notprop=['count'])
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/mwapi/session.py", line 308, in get
    return self.request('GET', params=params, auth=auth,
           ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        query_continue=query_continue,
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        continuation=continuation)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/mwapi/session.py", line 171, in request
    return self._request(method, params=normal_params, auth=auth,
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                         files=files)
                         ^^^^^^^^^^^^
  File "/layers/heroku_python/venv/lib/python3.13/site-packages/mwapi/session.py", line 127, in _request
    raise APIError.from_doc(doc['error'])
mwapi.errors.APIError: echo-read-notifications: You don't have permission to $1. -- See https://meta.wikimedia.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/postorius/lists/mediawiki-api-announce.lists.wikimedia.org/> for notice of API deprecations and breaking changes.