gpg-preset-passphrase: caching passphrase failed: Not supported

Solution 1:

This feature must first be enabled in ~/.gnupg/gpg-agent.conf using the option:

allow-preset-passphrase

After editing the config it might be enough to gpg-connect-agent reloadagent /bye, or you might need to restart the agent completely.

Note that the preset passphrase is only stored in memory – it will not persist across reboots. (How would gpg-agent store it securely, anyway?)