Troubleshooting
Use this page when a command fails or output does not match the expected shape.
Install errors
Section titled “Install errors”Confirm the active Python environment:
python --versionpython -m pip show mailatlasPython 3.12 is recommended. The package metadata currently allows Python 3.11 and newer.
mailatlas command not found
Section titled “mailatlas command not found”Activate the virtual environment where you installed MailAtlas:
source .venv/bin/activatepython -m pip install mailatlasIf you installed with uv tool install mailatlas, confirm your tool bin directory is on PATH.
Fixture path missing
Section titled “Fixture path missing”The docs use the public sample data repository:
git clone https://github.com/mailatlas/sample-data.gitls sample-data/fixtures/emlls sample-data/fixtures/mboxIf you are using your own message file, pass the path to that file instead.
PDF export fails
Section titled “PDF export fails”PDF export requires Chrome or Chromium.
mailatlas doctor --require-pdfIf the browser is installed but not found:
export MAILATLAS_PDF_BROWSER="/path/to/chrome-or-chromium"Use mailatlas doctor --skip-pdf when you do not need PDF export.
IMAP authentication fails
Section titled “IMAP authentication fails”Use either password auth or OAuth token auth.
For password auth:
export MAILATLAS_IMAP_PASSWORD=app-passwordmailatlas receive --provider imap --folder INBOXFor OAuth token auth:
export MAILATLAS_IMAP_ACCESS_TOKEN=oauth-access-tokenmailatlas receive --provider imap --folder INBOXMailAtlas consumes the access token but does not manage the OAuth login or refresh lifecycle.
IMAP folder not found
Section titled “IMAP folder not found”Confirm the exact folder name with your provider. Some providers use localized folder names or nested folder paths.
Gmail redirect issue
Section titled “Gmail redirect issue”Use a Google OAuth desktop client for mailatlas auth gmail. If the browser flow is not usable in your environment, pass --no-browser and open the printed URL manually.
Gmail receive says the token is missing receive scope
Section titled “Gmail receive says the token is missing receive scope”Authorize Gmail with the receive capability:
mailatlas auth gmail \ --client-id "$MAILATLAS_GMAIL_CLIENT_ID" \ --client-secret "$MAILATLAS_GMAIL_CLIENT_SECRET" \ --capability receiveUse --capability send,receive only when the same local token should support both actions.
Gmail receive reports cursor_reset_required
Section titled “Gmail receive reports cursor_reset_required”The stored Gmail history cursor is no longer valid. Run an explicit full sync:
mailatlas receive \ --label INBOX \ --limit 50 \ --full-syncFull sync may return duplicates if those messages are already stored. That is expected.
Gmail From address issue
Section titled “Gmail From address issue”Use the authenticated Gmail address or a Gmail send-as alias configured in Gmail.
SMTP connection failure
Section titled “SMTP connection failure”Check:
MAILATLAS_SMTP_HOSTMAILATLAS_SMTP_PORTMAILATLAS_SMTP_USERNAMEMAILATLAS_SMTP_PASSWORDMAILATLAS_SMTP_STARTTLSMAILATLAS_SMTP_SSL
Use either STARTTLS or SSL, not both.
Attachment missing
Section titled “Attachment missing”Confirm the attachment path exists and is readable from the current working directory:
ls -l report.pdfMailAtlas fails instead of silently dropping missing attachments.
Duplicate messages
Section titled “Duplicate messages”MailAtlas deduplicates by message_id when present and falls back to a normalized content hash. A nonzero duplicate_count is expected if you ingest the same message twice or receive from a mailbox that overlaps with existing documents.
MCP send tool hidden
Section titled “MCP send tool hidden”Live send is hidden by default. To expose the live send tool:
export MAILATLAS_MCP_ALLOW_SEND=1mailatlas mcp --root .mailatlasSet this variable only where the MCP client is allowed to send email. Draft and read tools remain available without the send gate.
MCP receive tools hidden
Section titled “MCP receive tools hidden”Mailbox receive tools are hidden by default. To expose them:
export MAILATLAS_MCP_ALLOW_RECEIVE=1mailatlas mcp --root .mailatlasSet this variable only where the MCP client is allowed to contact a mailbox provider and write private email into the local workspace.
Still stuck
Section titled “Still stuck”Open an issue with:
- The command you ran.
- The sanitized JSON output or error text.
- Your operating system.
- Python version.
- MailAtlas version.
- Whether the workspace contains synthetic or real data.
Use the public issue tracker only with sanitized details: https://github.com/mailatlas/mailatlas/issues.