csingley/ofxtools

Failure attempting to connect to USAA

danielcovill opened this issue · 4 comments

To be fair, this may not be a problem with ofxtools as this support page seems to indicate USAA has discontinued OFX capabilities. Running
ofxget scan usaa
results in the following:

Traceback (most recent call last):
  File "C:\Users\Daniel\Git\budget\.venv\Scripts\ofxget-script.py", line 33, in <module>
    sys.exit(load_entry_point('ofxtools==0.9', 'console_scripts', 'ofxget')())
  File "C:\Users\Daniel\Git\budget\.venv\lib\site-packages\ofxtools\scripts\ofxget.py", line 1568, in main
    REQUEST_HANDLERS[args["request"]](args)
  File "C:\Users\Daniel\Git\budget\.venv\lib\site-packages\ofxtools\scripts\ofxget.py", line 486, in scan_profile
    scan_results = _scan_profile(url, org, fid)
  File "C:\Users\Daniel\Git\budget\.venv\lib\site-packages\ofxtools\scripts\ofxget.py", line 1164, in _scan_profile
    valid, signoninfo_ = _read_scan_response(future, not signoninfo)
  File "C:\Users\Daniel\Git\budget\.venv\lib\site-packages\ofxtools\scripts\ofxget.py", line 1236, in _read_scan_response
    response = future.result()
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.240.0_x64__qbz5n2kfra8p0\lib\concurrent\futures\_base.py", line 433, in result
    return self.__get_result()
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.240.0_x64__qbz5n2kfra8p0\lib\concurrent\futures\_base.py", line 389, in __get_result
    raise self._exception
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.240.0_x64__qbz5n2kfra8p0\lib\concurrent\futures\thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "C:\Users\Daniel\Git\budget\.venv\lib\site-packages\ofxtools\Client.py", line 505, in request_profile
    assert proftrnrs.status.code == 0
AssertionError

I expect the "fix" here may unfortunately be to remove usaa from ofxget list but I would love to find out I'm wrong.

I am able to download statements from USAA. Try updating to master.

Interesting. I can download statements as well, it appears only scan is failing. It succeeds for CITI, but fails for USAA for some reason. Not an impediment to what I'm trying to do, just thought you may be interested.

There have been some recent large changes in the behavior of OFXClient.request_profile(). The ofxget scan error handling needs to be updated to deal with the fact that request_profile() is now parsing the PROFRS... either that, or the scan logic needs to be provided a hook to turn that crap off (it's useless for scan purposes).

Thanks for reporting.

I don't seem to be able to restore access to USAA on my end. Redirecting to #123

There is indeed some bad error handling going in in OFXClient.request_profile()... but I'm not fixing that against USAA; it'll need its own issue.