Skip to content
0

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 location

On 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/neomutt

While 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/messages

soundfreaq.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

  1. GPG Key Verification: I verified that your local Arch Linux keyring does contain the subkey (ID 1DA696C645BB5017) used to encrypt the soundfreaq.tokens file. The "mismatch" was actually a permissions issue.
  2. File Permissions: The mutt_oauth2.py script was refusing to read the token file because its permissions were too open (644). I changed them to 600 (read/write by owner only), which allowed the script to proceed with decryption.
  3. Authentication Protocols: I updated accounts/remote-soundfreaq to include both oauthbearer and xoauth2 in the allowed authenticators. Gmail often requires xoauth2 specifically.
  4. Connection URL: I updated the F4 macro in your neomuttrc to 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.

最近更新