trouble-shooting
Using NeoMutt is not as easy as using Outlook and you will definitely encounter various problems.
message_cache_dir
Examine the configuration files under the current directory and see which setting is causing the error message Cache disabled, $message_cache_dir isn't a directory: /home/alowree/.cache/neomutt to be displayed on the commandline on the bottom of NeoMutt, after pressing F3 to switch to account biaget.
The error is caused by a conflict in the options file where both header_cache and message_cache_dir are set to the same path (~/.cache/neomutt), but that path is currently a file on your system.
Identified Cause In your options file at lines 167-168:
set header_cache = "~/.cache/neomutt"
set message_cache_dir = "~/.cache/neomutt" # Message cache locationOn your filesystem, /home/alowree/.cache/neomutt is a file (likely created by the header cache):
-rw------- 1 alowree alowree 1161728 Jun 9 15:02 /home/alowree/.cache/neomuttWhile header_cache can be a single file, message_cache_dir MUST be a directory because NeoMutt needs to store individual message body files inside it. When you switch to the biaget account (which uses IMAP), NeoMutt attempts to initialize the message cache and fails because it cannot treat the existing file as a directory.
Why it happens on F3
The biaget account uses IMAP (imaps://...), which triggers message caching. The twine account (mapped to F2) uses a local Maildir (~/.maildir/twine), which typically doesn't use the message_cache_dir setting, so the error doesn't appear until you switch to the remote account.
Recommended Fix
You should change these settings to use separate subdirectories. For example:
set header_cache = "~/.cache/neomutt/headers"
set message_cache_dir = "~/.cache/neomutt/messages"Then, you would need to remove the existing file and create the directory:
rm /home/alowree/.cache/neomutt
mkdir -p /home/alowree/.cache/neomutt/headers /home/alowree/.cache/neomutt/messagessoundfreaq.tokens
Now when I press F4 I receive the following error message No authenticators available or wrong credentials at the commandline of NeoMutt. I do have the soundfreaq.tokens file in place. I have also the python script mutt_oauth2.py downloaded, execution permission granted, and with the script moved to ~/.local/bin. Help me debug and make sure that the token is properly obtained, decrypted, and passed on the Gmail API, as I suspect that the problem lies in the mismatch between the pub key being used for encryption and the private key being used for decryption of the soundfreaq.token. It highly likely that the soundfreaq.tokens is generated on your macOS by one GPG id (under ~/.gnupg), while on Arch Linux, you have another GPG id (also under ~/.gnupg). What can be about these two different sets of GPG configurations, one on each computer?
I have diagnosed and fixed the authentication issue for your Soundfreaq account.
Debugging Results & Fixes
- GPG Key Verification: I verified that your local Arch Linux keyring does contain the subkey (
ID 1DA696C645BB5017) used to encrypt thesoundfreaq.tokensfile. The "mismatch" was actually a permissions issue. - File Permissions: The
mutt_oauth2.pyscript was refusing to read the token file because its permissions were too open (644). I changed them to600(read/write by owner only), which allowed the script to proceed with decryption. - Authentication Protocols: I updated
accounts/remote-soundfreaqto include bothoauthbearerandxoauth2in the allowed authenticators. Gmail often requiresxoauth2specifically. - Connection URL: I updated the
F4macro in yourneomuttrcto include your email address in the IMAP URL (imaps://alowree@soundfreaq.com@imap.gmail.com/INBOX). This ensures NeoMutt explicitly knows which identity to use for the OAuth2 handshake.
Verified Status
I ran a manual test using your script and token file, and it successfully authenticated:
- Decryption: Working.
- Token Retrieval: Successful.
- IMAP/SMTP Test: Succeeded.
You should now be able to press F4 in NeoMutt to switch to your Soundfreaq account without the authentication error.
