phacility/phabricator · error · PhutilArgumentUsageException

No email exists with address "%s"!

Error message

No email exists with address "%s"!

What it means

Thrown by `bin/auth verify` when the supplied address does not exist in the user_email table. The workflow loads the record directly via `id(new PhabricatorUserEmail())->loadOneWhere('address = %s', $address)`; a null result aborts with this PhutilArgumentUsageException before the owning user is resolved or the verification editor runs. The match is exact (including case and plus-addressing), and it does not fuzzy-match or search disabled addresses differently.

Source

Thrown at src/applications/auth/management/PhabricatorAuthManagementVerifyWorkflow.php:39

        ));
  }

  public function execute(PhutilArgumentParser $args) {
    $emails = $args->getArg('email');
    if (!$emails) {
      throw new PhutilArgumentUsageException(
        pht('You must specify the email to verify.'));
    } else if (count($emails) > 1) {
      throw new PhutilArgumentUsageException(
        pht('You can only verify one address at a time.'));
    }
    $address = head($emails);

    $email = id(new PhabricatorUserEmail())->loadOneWhere(
      'address = %s',
      $address);
    if (!$email) {
      throw new PhutilArgumentUsageException(
        pht(
          'No email exists with address "%s"!',
          $address));
    }

    $viewer = $this->getViewer();

    $user = id(new PhabricatorPeopleQuery())
      ->setViewer($viewer)
      ->withPHIDs(array($email->getUserPHID()))
      ->executeOne();
    if (!$user) {
      throw new Exception(pht('Email record has invalid user PHID!'));
    }

    $editor = id(new PhabricatorUserEditor())
      ->setActor($viewer)
      ->verifyEmail($user, $email);

View on GitHub (pinned to 5720a38cfe)

Solutions

  1. Confirm the exact stored address: `SELECT phid, address, isVerified FROM user_email WHERE address LIKE '%example.com%';`.
  2. If the address is genuinely absent, have the user add it under Settings -> Email Addresses first, then run `bin/auth verify <exact-address>`.
  3. Re-run with the exact byte-for-byte address found in the database.
  4. Check you are running against the correct environment's database.

Example fix

// before
$ bin/auth verify Alice@Example.com
No email exists with address "Alice@Example.com"!

// after
$ bin/auth verify alice@example.com
Defensive patterns

Strategy: validation

Validate before calling

$email = id(new PhabricatorUserEmail())->loadOneWhere(
  'address = %s',
  $address);
if (!$email) {
  // the address is not on file: have the user add it in Settings first
}

Prevention

When it happens

Trigger: Running `bin/auth verify <address>` where the address was never added to any account: typo, the user's primary address is different, the address belongs to a user in a different install, or the email row was purged by a removal workflow.

Common situations: Verifying an address the user typed into a support ticket but never added under Settings -> Email Addresses; case mismatch (Alice@ vs alice@); a migrated install where email rows were not carried over; the admin is on the wrong environment.

Related errors


AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21). Data as JSON: /api/errors/5091e87c12f63360. Report an issue: GitHub.