csingley / ofxtools

Python OFX Library
Other
301 stars 68 forks source link

Failure attempting to connect to USAA #107

Closed danielcovill closed 3 years ago

danielcovill commented 3 years ago

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.

csingley commented 3 years ago

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

danielcovill commented 3 years ago

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.

csingley commented 3 years ago

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.

csingley commented 3 years ago

I don't seem to be able to restore access to USAA on my end. Redirecting to https://github.com/csingley/ofxtools/discussions/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.