Do you also have an issue with balance retrieving? I guess that’s another place to swich from one locale to another…
As I said in !966 (comment 2459724098), no currently it does not work. But you provide interesting insights that might help to fix things (not by me, I lack time above all but also knowledge of the code to do so).
I’m fine with constant 2FA, that’s already what N26 does. I tried your branch and it worked for me.
I prefer to avoid installing a browser on my server (I run woob through kresus on a SBC).
So you mean we have to install a full fledged browser in both cases to fix the issue?
This is now failing again even with this PR for me:
2025-04-20 19:30:56,569:DEBUG:woob.core.modules.loader:modules.py:255:load_module Loaded module "n26" from /var/lib/kresus/woob-data/modules/3.7/woob_modules/n26
2025-04-20 19:30:56,570:DEBUG:woob.backend:modules.py:163:create_instance Created backend "n26" for module "n26"
2025-04-20 19:30:56,571:DEBUG:urllib3.util.retry:retry.py:286:from_int Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
2025-04-20 19:30:56,572:DEBUG:urllib3.util.retry:retry.py:286:from_int Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
2025-04-20 19:30:56,574:DEBUG:woob.n26.browser:browsers.py:1231:_load_cookies Reloaded cookies from storage
2025-04-20 19:30:56,587:DEBUG:urllib3.connectionpool:connectionpool.py:1049:_new_conn Starting new HTTPS connection (1): api.tech26.de:443
2025-04-20 19:30:56,736:DEBUG:urllib3.connectionpool:connectionpool.py:544:_make_request https://api.tech26.de:443 "POST /oauth2/token HTTP/1.1" 401 225
2025-04-20 19:30:56,825:DEBUG:urllib3.connectionpool:connectionpool.py:544:_make_request https://api.tech26.de:443 "POST /oauth2/token HTTP/1.1" 403 517
2025-04-20 19:30:56,900:DEBUG:urllib3.connectionpool:connectionpool.py:544:_make_request https://api.tech26.de:443 "POST /api/mfa/challenge HTTP/1.1" 201 23
2025-04-20 19:30:56,903:DEBUG:woob.n26.browser:browsers.py:1054:internal_callback Unable to handle https://api.tech26.de/api/mfa/challenge
2025-04-20 19:30:56,904:DEBUG:woob.n26.browser:browsers.py:1292:dump_state Stored cookies into storage
2025-04-20 19:31:33,824:DEBUG:woob.core.modules.loader:modules.py:255:load_module Loaded module "n26" from /var/lib/kresus/woob-data/modules/3.7/woob_modules/n26
2025-04-20 19:31:33,825:DEBUG:woob.backend:modules.py:163:create_instance Created backend "n26" for module "n26"
2025-04-20 19:31:33,826:DEBUG:urllib3.util.retry:retry.py:286:from_int Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
2025-04-20 19:31:33,827:DEBUG:urllib3.util.retry:retry.py:286:from_int Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
2025-04-20 19:31:33,829:DEBUG:woob.n26.browser:browsers.py:1231:_load_cookies Reloaded cookies from storage
2025-04-20 19:31:33,834:DEBUG:urllib3.connectionpool:connectionpool.py:1049:_new_conn Starting new HTTPS connection (1): api.tech26.de:443
2025-04-20 19:31:33,920:DEBUG:urllib3.connectionpool:connectionpool.py:544:_make_request https://api.tech26.de:443 "POST /oauth2/token HTTP/1.1" 200 184
2025-04-20 19:31:33,923:DEBUG:woob.n26.browser:browsers.py:1054:internal_callback Unable to handle https://api.tech26.de/oauth2/token
2025-04-20 19:31:34,000:DEBUG:urllib3.connectionpool:connectionpool.py:544:_make_request https://api.tech26.de:443 "GET /api/accounts HTTP/1.1" 200 267
2025-04-20 19:31:34,001:DEBUG:woob.n26.browser:browsers.py:1040:internal_callback Handle https://api.tech26.de/api/accounts with AccountPage
2025-04-20 19:31:34,006:DEBUG:woob.n26.browser:browsers.py:1292:dump_state Stored cookies into storage
2025-04-20 19:31:35,770:DEBUG:woob.core.modules.loader:modules.py:255:load_module Loaded module "n26" from /var/lib/kresus/woob-data/modules/3.7/woob_modules/n26
2025-04-20 19:31:35,771:DEBUG:woob.backend:modules.py:163:create_instance Created backend "n26" for module "n26"
2025-04-20 19:31:35,772:DEBUG:urllib3.util.retry:retry.py:286:from_int Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
2025-04-20 19:31:35,773:DEBUG:urllib3.util.retry:retry.py:286:from_int Converted retries value: 2 -> Retry(total=2, connect=None, read=None, redirect=None, status=None)
2025-04-20 19:31:35,775:DEBUG:woob.n26.browser:browsers.py:1231:_load_cookies Reloaded cookies from storage
2025-04-20 19:31:35,787:DEBUG:urllib3.connectionpool:connectionpool.py:1049:_new_conn Starting new HTTPS connection (1): api.tech26.de:443
2025-04-20 19:31:35,900:DEBUG:urllib3.connectionpool:connectionpool.py:544:_make_request https://api.tech26.de:443 "GET /api/accounts HTTP/1.1" 200 267
2025-04-20 19:31:35,902:DEBUG:woob.n26.browser:browsers.py:1040:internal_callback Handle https://api.tech26.de/api/accounts with AccountPage
2025-04-20 19:31:35,955:DEBUG:urllib3.connectionpool:connectionpool.py:544:_make_request https://api.tech26.de:443 "GET /api/smrt/transactions?limit=1000 HTTP/1.1" 404 None
Traceback (most recent call last):
File "/usr/lib/kresus/build/server/providers/woob/py/main.py", line 713, in fetch
results["values"] = self.get_transactions(from_date)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib/kresus/build/server/providers/woob/py/main.py", line 596, in get_transactions
for hist_tr in self.backend.iter_history(account):
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/var/lib/kresus/woob-data/modules/3.7/woob_modules/n26/browser.py", line 354, in _iter_transactions
self.transactions.go(params=params)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/woob/browser/url.py", line 193, in go
r = self.browser.location(
self.build(**kwargs),
...<5 lines>...
timeout=timeout,
)
File "/usr/lib/python3.13/site-packages/woob/browser/browsers.py", line 1071, in location
response = self.open(*args, **kwargs)
File "/usr/lib/python3.13/site-packages/woob/browser/browsers.py", line 1058, in open
return super(PagesBrowser, self).open(callback=internal_callback, *args, **kwargs)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/woob/browser/browsers.py", line 915, in open
return super().open(url, *args, **kwargs)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/woob/browser/browsers.py", line 566, in open
response = self.session.send(preq,
allow_redirects=allow_redirects,
...<5 lines>...
callback=inner_callback,
is_async=is_async)
File "/usr/lib/python3.13/site-packages/woob/browser/sessions.py", line 161, in send
return func(*args, **kwargs)
File "/usr/lib/python3.13/site-packages/woob/browser/sessions.py", line 154, in func
return callback(self, resp)
File "/usr/lib/python3.13/site-packages/woob/browser/browsers.py", line 561, in inner_callback
self.raise_for_status(response)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/var/lib/kresus/woob-data/modules/3.7/woob_modules/n26/browser.py", line 110, in raise_for_status
return super().raise_for_status(response)
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/usr/lib/python3.13/site-packages/woob/browser/browsers.py", line 625, in raise_for_status
raise HTTPNotFound(http_error_msg, response=response)
woob.browser.exceptions.HTTPNotFound: 404 Client Error: Not Found
Same here, here is a formated traceback when running from Kresus:
Traceback (most recent call last):
File "/usr/lib/kresus/build/server/providers/woob/py/main.py", line 713, in fetch
results["values"] = self.get_transactions(from_date)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/usr/lib/kresus/build/server/providers/woob/py/main.py", line 590, in get_transactions
for account in list(self.backend.iter_accounts()):
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/lib/kresus/woob-data/modules/3.7/woob_modules/fortuneo/module.py", line 62, in iter_accounts
yield from self.browser.iter_accounts()
~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/woob/browser/browsers.py", line 1154, in inner
browser.do_login()
~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/site-packages/woob/browser/mfa.py", line 201, in do_double_authentication
self.init_login()
~~~~~~~~~~~~~~~^^
File "/var/lib/kresus/woob-data/modules/3.7/woob_modules/fortuneo/browser.py", line 180, in init_login
self.first_login_step()
~~~~~~~~~~~~~~~~~~~~~^^
File "/var/lib/kresus/woob-data/modules/3.7/woob_modules/fortuneo/browser.py", line 203, in first_login_step
self.page.login(self.username, self.password)
^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'login'
Il n’est même pas installé… Je suis sous ArchLinux, j’utilise Plasma sous Wayland, mais les applications GNOME essentiellement. Mais ça fonctionnait aussi sous X à l’époque où j’y étais encore.
Gnome Terminal quotidiennement (ne pas confondre avec Console, qui est GTK4 et où ça ne fonctionne effectivement pas, mais qui en plus perd la transparence et la possibilité de choisir son jeu de couleurs), Gedit dernièrement (avant de découvrir que l’on était passé à Text Editor, ce qui m’a fait réalisé que le problème était généralisé à GTK4 et pas limité à Nautilus), mais aussi Nautilus quand c’était encore du GTK3 (et qui est la première appli sous laquelle j’ai rencontré le problème).
Was 'main' the label previously? It does not looks nice on Kresus along other banks « Compte courant » for instance. I guess the issue here is that it should be translated depending on locale since N26 is somewhat an international bank.
C’est effectivement le cas, mais que sous GTK4, ça fonctionne sous GTK3. J’ai ouvert un ticket, https://gitlab.gnome.org/GNOME/gtk/-/issues/7386, et la réponse est essentiellement « faites #31 ».
97.9 brought back my address book (with duplicates since I’ve tried to re-add my accounts when I saw them missing), but after restarting TB because no interaction was possible with the adress books, it gets stuck with 
Here is the console-export-2024-12-9_21-15-13.txt
If you use root, there is also the option I’m using, which is https://github.com/Rikj000/Android-Auto-XLauncher-Unlocked.
I had the same issue but it started working again for me on the 21th of August.
It depends how you install the dependencies (e.g. on ArchLinux, if you use system packages you cannot control the installed version). But for what it’s worth, on my system downgrading to 2.32.2 was enough to fix the issue.
Pentagons are (see e.g. the 26 one near the middle right, or 24 on the right). And this is coherent with SatStat displaying Beidou at the bottom. But indeed Galileo is not on your screen.
Oh sorry, I thought you were working at BI/Powens.
And yes, as a human being I can definitively login at https://voscomptesenligne.labanquepostale.fr/voscomptes/canalXHTML/identif.ea?origin=particuliers and access my accounts. If that was broken for one month straight (or I guess even 24 h), it would have made the news. ;)
Not sure about that, I don’t know how much this Finary company can be trusted about what the issue is.
Also, Powens = Budget Insight, the company which developed Woob. So I would rather say that there is an issue with the way Powens/Woob access LBP. After all you can access all your data by manually logging in on a web browser, so scraping should still be possible if you have the skill (I don’t).
I guess that if this is really the case (Powens cannot repair the scraper without changes on LBP side), @llange might be able to tell us so?
Bruno Pagani (05f2f6d2) at 06 Feb 19:54
Done!
Bruno Pagani (035c6e19) at 06 Feb 17:03
[woob/core/modules] Require importlib-metadata on python < 3.8