phacility/phabricator · error · PhutilArgumentUsageException
Some specified messages do not exist
Error message
Some specified messages do not exist: %s
What it means
resend loaded rows for the requested IDs via PhabricatorMetaMTAMail->loadAllWhere('id IN (%Ld)', $ids) and compared: array_diff_key found requested IDs with no matching row. It refuses to resend a partial set and lists exactly which IDs do not exist - they are typos, IDs from another install, or mail rows removed by retention/garbage collection.
Solutions
- Drop the listed missing IDs from the command and resend only the ones that exist - the error message enumerates them precisely.
- Verify each ID in the Outbound Mail UI before resending.
- If the mail was garbage-collected, resend is impossible - re-generate the notification instead (e.g. trigger the sending action again).
Example fix
# before: 34 does not exist ./bin/mail resend --id 12 --id 34 # after: resend only existing IDs ./bin/mail resend --id 12
Defensive patterns
Strategy: validation
Validate before calling
// Verify all IDs exist before invoking resend.
$messages = id(new PhabricatorMetaMTAMail())->loadAllWhere(
'id IN (%Ld)',
$ids);
$missing = array_diff($ids, mpull($messages, 'getID'));
if ($missing) {
// drop or abort before calling ./bin/mail resend
} Prevention
- Validate mail IDs against the Outbound Mail UI or a fresh query before scripting resends.
- Watch mail retention settings - garbage-collected messages cannot be resent, only regenerated.
When it happens
Trigger: Passing --id with a typo'd or nonexistent mail ID; copy-pasting IDs between environments (dev vs prod); the mail was old enough that the outbound mail table was pruned by GC; a race where the row was deleted between listing and resending.
Common situations: Scripted resends fed from stale lists; installs with aggressive mail retention; cross-environment ID confusion.
Related errors
- Argument " " is not a valid message ID.
- Mailer key (" ") is not configured, or does not support…
- Message type " " is unknown, supported message types are: .
- No configured mail receiver can accept mail to
- No configured mailers support outbound messages of type
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/99e6fe16d8819646.
Report an issue: GitHub.
Appendix: source
Thrown at src/applications/metamta/management/PhabricatorMailManagementResendWorkflow.php:42
$console = PhutilConsole::getConsole();
$ids = $args->getArg('id');
if (!$ids) {
throw new PhutilArgumentUsageException(
pht(
"Use the '%s' flag to specify one or more messages to resend.",
'--id'));
}
$messages = id(new PhabricatorMetaMTAMail())->loadAllWhere(
'id IN (%Ld)',
$ids);
if ($ids) {
$ids = array_fuse($ids);
$missing = array_diff_key($ids, $messages);
if ($missing) {
throw new PhutilArgumentUsageException(
pht(
'Some specified messages do not exist: %s',
implode(', ', array_keys($missing))));
}
}
foreach ($messages as $message) {
$message->setStatus(PhabricatorMailOutboundStatus::STATUS_QUEUE);
$message->save();
$mailer_task = PhabricatorWorker::scheduleTask(
'PhabricatorMetaMTAWorker',
$message->getID(),
array(
'priority' => PhabricatorWorker::PRIORITY_ALERTS,
));
$console->writeOut(View on GitHub (pinned to 5720a38cfe)