phacility/phabricator · info · PhabricatorMetaMTAReceivedMailProcessingException
err:exception
err:exception
Error message
Ignoring email to create files that did not include attachments.
What it means
FileCreateMailReceiver handles inbound email that creates files from attachments; when PhabricatorMetaMTAReceivedMail::getAttachments() returns empty, it throws a processing exception with STATUS_UNHANDLED_EXCEPTION so the mail is marked ignored rather than processed. This is expected control flow, not a malfunction: there is nothing to turn into a file. It appears in logs with the err:exception code but is informational.
Source
Thrown at src/applications/files/mail/FileCreateMailReceiver.php:17
<?php
final class FileCreateMailReceiver
extends PhabricatorApplicationMailReceiver {
protected function newApplication() {
return new PhabricatorFilesApplication();
}
protected function processReceivedMail(
PhabricatorMetaMTAReceivedMail $mail,
PhutilEmailAddress $target) {
$author = $this->getAuthor();
$attachment_phids = $mail->getAttachments();
if (empty($attachment_phids)) {
throw new PhabricatorMetaMTAReceivedMailProcessingException(
MetaMTAReceivedMailStatus::STATUS_UNHANDLED_EXCEPTION,
pht(
'Ignoring email to create files that did not include attachments.'));
}
$first_phid = head($attachment_phids);
$mail->setRelatedPHID($first_phid);
$sender = $this->getSender();
if (!$sender) {
return;
}
$attachment_count = count($attachment_phids);
if ($attachment_count > 1) {
$subject = pht('You successfully uploaded %d files.', $attachment_count);
} else {
$subject = pht('You successfully uploaded a file.');
}View on GitHub (pinned to 5720a38cfe)
Solutions
- Send mail that actually contains file attachments (multipart MIME) to the files receive address
- If testing, attach any file before sending
- If attachments were included but ignored, verify the inbound mail pipeline (mail adapter, parsing) preserves MIME parts
Defensive patterns
Strategy: validation
Validate before calling
// In a custom receiver subclass, decide how to treat attachment-less mail
// instead of relying on the default ignore-and-throw:
protected function processReceivedMail($mail, $target) {
if (!$mail->getAttachments()) {
// Log/notify the sender, then return to skip file creation cleanly.
return;
}
// ...
} Try / catch
try {
// invoke receiver processing
} catch (PhabricatorMetaMTAReceivedMailProcessingException $ex) {
// Mail is marked with the status code and ignored; safe to log and continue.
} Prevention
- Tell users the file-create address only processes mail that carries attachments
- Verify corporate mail gateways forward MIME parts untouched to the inbound address
- Treat recurring occurrences of this status as a routing problem, not an application error
When it happens
Trigger: Sending a plain-text email with no MIME attachments to the files application's inbound address; mail where all content is inline text; a mail gateway stripping MIME parts before delivery to Phabricator.
Common situations: Users replying to notification threads (no attachments) at the file-create address; corporate mail gateways removing attachments; admins testing the address with an empty message.
Related errors
- You must specify the email to verify.
- You can only verify one address at a time.
- No email exists with address "%s"!
- Email record has invalid user PHID!
- No AES256 key is specified in the keyring as a default encry
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/aa018f38bbf57940.
Report an issue: GitHub.