Xqt created this task.
Xqt added projects: Pywikibot, Pywikibot-Login.
Restricted Application added subscribers: pywikibot-bugs-list, Aklapper.
TASK DESCRIPTION
Sleeping for 4.4 seconds, 2026-04-11 16:15:32
ERROR: Logged in as 'Xqtest' instead of 'Xqbot'. Forcing re-login.
Password for user Xqbot on wikipedia:de (no characters will be shown):
ERROR: page [[Seat Fura]] not saved due to assertuserfailed: You are no
longer logged in, so the action could not be completed.
[servedby: mw-api-ext.eqiad.main-5b87c44786-pn4cj;
help: See https://de.wikipedia.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.]
WARNING: API error badtoken: Invalid CSRF token.
ERROR: User assertion failed. Forcing re-login.
Sleeping for 4.4 seconds, 2026-04-11 16:15:49
WARNING: API error badtoken: Invalid CSRF token.
Sleeping for 4.6 seconds, 2026-04-11 16:15:54
Page [[Seat 132]] saved
66 read operations
32 write operations
Execution time: 5 minutes, 38 seconds
Read operation time: 5.0 seconds
Write operation time: 10.6 seconds
Script terminated by exception:
ERROR: 'token' (KeyError)
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\pwb\GIT\core\pwb.py", line 40, in <module>
sys.exit(main())
~~~~^^
File "C:\pwb\GIT\core\pwb.py", line 36, in main
runpy.run_path(str(path), run_name='__main__')
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen runpy>", line 287, in run_path
File "<frozen runpy>", line 98, in _run_module_code
File "<frozen runpy>", line 88, in _run_code
File "C:\pwb\GIT\core\pywikibot\scripts\wrapper.py", line 569, in <module>
main()
~~~~^^
File "C:\pwb\GIT\core\pywikibot\scripts\wrapper.py", line 552, in main
if not execute():
~~~~~~~^^
File "C:\pwb\GIT\core\pywikibot\scripts\wrapper.py", line 539, in execute
run_python_file(filename, script_args, module)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\pwb\GIT\core\pywikibot\scripts\wrapper.py", line 154, in
run_python_file
exec(compile(source, filename, 'exec', dont_inherit=True),
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
main_mod.__dict__)
^^^^^^^^^^^^^^^^^^
File "C:\pwb\GIT\core\scripts\solve_disambiguation.py", line 1288, in
<module>
main()
~~~~^^
File "C:\pwb\GIT\core\scripts\solve_disambiguation.py", line 1284, in main
bot.run()
~~~~~~~^^
File "C:\pwb\GIT\core\pywikibot\bot.py", line 1595, in run
self.treat(page)
~~~~~~~~~~^^^^^^
File "C:\pwb\GIT\core\scripts\solve_disambiguation.py", line 1219, in
treat
and not self.treat_links(ref_page, page):
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
File "C:\pwb\GIT\core\scripts\solve_disambiguation.py", line 727, in
treat_links
treat_result = self.treat_disamb_only(ref_page, page)
File "C:\pwb\GIT\core\scripts\solve_disambiguation.py", line 1014, in
treat_disamb_only
ref_page.put(text, summary=self.summary, asynchronous=True)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\pwb\GIT\core\pywikibot\tools\_deprecate.py", line 427, in wrapper
return obj(*__args, **__kw)
File "C:\pwb\GIT\core\pywikibot\page\_basepage.py", line 1447, in put
self.text = newtext
^^^^^^^^^
File "C:\pwb\GIT\core\pywikibot\page\_basepage.py", line 593, in text
self.botMayEdit() # T262136, T267770
~~~~~~~~~~~~~~~^^
File "C:\pwb\GIT\core\pywikibot\page\_basepage.py", line 1163, in
botMayEdit
self._bot_may_edit = self._check_bot_may_edit()
~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\pwb\GIT\core\pywikibot\page\_basepage.py", line 1180, in
_check_bot_may_edit
templates = self.templatesWithParams()
File "C:\pwb\GIT\core\pywikibot\page\_page.py", line 81, in
templatesWithParams
for t in self.templates(namespaces=Namespace.TEMPLATE)}
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\pwb\GIT\core\pywikibot\tools\_deprecate.py", line 598, in wrapper
return func(*args, **kwargs)
File "C:\pwb\GIT\core\pywikibot\page\_basepage.py", line 1688, in
templates
self._templates = set(self.itertemplates(content=content))
~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen _collections_abc>", line 360, in __next__
File "C:\pwb\GIT\core\pywikibot\tools\collections.py", line 280, in send
return next(self._started_gen)
File "C:\pwb\GIT\core\pywikibot\data\api\_generators.py", line 695, in
generator
self.data = self.request.submit()
~~~~~~~~~~~~~~~~~~~^^
File "C:\pwb\GIT\core\pywikibot\data\api\_requests.py", line 1085, in
submit
if self._userinfo_query(result):
~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "C:\pwb\GIT\core\pywikibot\data\api\_requests.py", line 862, in
_userinfo_query
self._relogin(f'Logged in as {username!r} instead of '
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
f'{self.site.user()!r}.')
^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\pwb\GIT\core\pywikibot\data\api\_requests.py", line 851, in
_relogin
self.site._relogin()
~~~~~~~~~~~~~~~~~~^^
File "C:\pwb\GIT\core\pywikibot\site\_apisite.py", line 456, in _relogin
self.login()
~~~~~~~~~~^^
File "C:\pwb\GIT\core\pywikibot\site\_apisite.py", line 426, in login
if login_manager.login(retry=True, autocreate=autocreate):
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\pwb\GIT\core\pywikibot\login.py", line 338, in login
self.login_to_site()
~~~~~~~~~~~~~~~~~~^^
File "C:\pwb\GIT\core\pywikibot\login.py", line 454, in login_to_site
login_result = login_request.submit()
File "C:\pwb\GIT\core\pywikibot\data\api\_requests.py", line 1166, in
submit
if self._bad_token(code):
~~~~~~~~~~~~~~~^^^^^^
File "C:\pwb\GIT\core\pywikibot\data\api\_requests.py", line 1027, in
_bad_token
tokens = self.site.tokens.update_tokens(self._params['token'])
~~~~~~~~~~~~^^^^^^^^^
KeyError: 'token'
CRITICAL: Exiting due to uncaught exception KeyError: 'token'
TASK DETAIL
https://phabricator.wikimedia.org/T423001
EMAIL PREFERENCES
https://phabricator.wikimedia.org/settings/panel/emailpreferences/
_______________________________________________
pywikibot-bugs mailing list -- [email protected]
To unsubscribe send an email to [email protected]