kee-org / keepassrpc

The KeePassRPC plugin that needs to be installed inside KeePass in order for Kee to be able to connect your browser to your passwords
GNU General Public License v2.0
635 stars 35 forks source link

PSL download fails, if %APPDATA%\Keepass does not exist #95

Closed casperklein closed 4 years ago

casperklein commented 4 years ago

System: Windows 10 Keepass: 2.44 Portable

I had an issue, where Kee Domain Matching did not work.

After reading this, I recognized, that there is no publicSuffixDomainCache.txt on my system.

I played a bit around and concluded the following things:

My questions are:

  1. Why is the `%APPDATA%\Keepass directory not created on demand?
  2. What is the proper way to debug KeepassRPC? There seems to be no log file or anything. Knowing that downloading the PSL fails due a not existing directory would have saved me a lot of time.
  3. What's wrong with my approach, setting a custom path for PSL? I wasn't able to debug this further, see point above.

Thank you!

luckyrat commented 4 years ago

1) That directory is used for the entirety of the KeePass application so if it does not exist, it is not for us as a mere plugin to interfere with that situation. For example, it would be bad to automatically create this folder in an environment where KeePass is running as a portable (not installed) executable.

When saving to this location fails (such as if the directory does not exist or permission is denied) KeePassRPC tries instead to write to the executable folder (in most cases that's in Program Files (x86) and in most cases this will fail due to insufficient permissions.

2) See https://forum.kee.pm/t/troubleshooting/560/1#heading--debug-the-problem

3) I would expect setting a custom path would work in the way you tried. If you're still struggling with this (sorry for the delay!) perhaps try including a trailing slash. Although, if that directory is where your KeePass executable resides, you should (see above) find that the problem comes down to that executable directory being read-only or otherwise unavailable for KeePassRPC to write to.