diff --git a/src/applications/people/query/PhabricatorPeopleQuery.php b/src/applications/people/query/PhabricatorPeopleQuery.php
index 1cd5957f65..ef53341622 100644
--- a/src/applications/people/query/PhabricatorPeopleQuery.php
+++ b/src/applications/people/query/PhabricatorPeopleQuery.php
@@ -1,131 +1,136 @@
 <?php
 
 /*
  * Copyright 2012 Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
  *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 final class PhabricatorPeopleQuery extends PhabricatorOffsetPagedQuery {
   private $usernames;
   private $realnames;
   private $emails;
   private $phids;
   private $ids;
 
   private $needPrimaryEmail;
 
   public function withIds(array $ids) {
     $this->ids = $ids;
     return $this;
   }
   public function withPhids(array $phids) {
     $this->phids = $phids;
     return $this;
   }
   public function withEmails(array $emails) {
     $this->emails = $emails;
     return $this;
   }
   public function withRealnames(array $realnames) {
     $this->realnames = $realnames;
     return $this;
   }
   public function withUsernames(array $usernames) {
     $this->usernames = $usernames;
     return $this;
   }
 
   public function needPrimaryEmail($need) {
     $this->needPrimaryEmail = $need;
     return $this;
   }
 
   public function execute() {
     $table  = new PhabricatorUser();
     $conn_r = $table->establishConnection('r');
 
     $joins_clause = $this->buildJoinsClause($conn_r);
     $where_clause = $this->buildWhereClause($conn_r);
     $limit_clause = $this->buildLimitClause($conn_r);
 
     $data = queryfx_all(
       $conn_r,
       'SELECT * FROM %T user %Q %Q %Q',
       $table->getTableName(),
       $joins_clause,
       $where_clause,
       $limit_clause);
 
     $users = $table->loadAllFromArray($data);
 
     if ($users && $this->needPrimaryEmail) {
       $emails = id(new PhabricatorUserEmail())->loadAllWhere(
         'userPHID IN (%Ls)',
         mpull($users, 'getPHID'));
       $emails = mpull($emails, null, 'getUserPHID');
       foreach ($users as $user) {
-        $user->attachPrimaryEmail($emails[$user->getPHID()]);
+        // Fail gracefully if we have data integrity problems.
+        if (empty($emails[$user->getPHID()])) {
+          $user->attachPrimaryEmail(new PhabricatorUserEmail());
+        } else {
+          $user->attachPrimaryEmail($emails[$user->getPHID()]);
+        }
       }
     }
 
     return $users;
   }
 
   private function buildJoinsClause($conn_r) {
     $joins = array();
 
     if ($this->emails) {
       $email_table = new PhabricatorUserEmail();
       $joins[] = qsprintf(
         $conn_r,
         'JOIN %T email ON email.userPHID = user.PHID',
         $email_table->getTableName());
     }
 
     $joins = implode(' ', $joins);
     return  $joins;
   }
 
   private function buildWhereClause($conn_r) {
     $where = array();
 
     if ($this->usernames) {
       $where[] = qsprintf($conn_r,
                           'user.userName IN (%Ls)',
                           $this->usernames);
     }
     if ($this->emails) {
       $where[] = qsprintf($conn_r,
                           'email.address IN (%Ls)',
                           $this->emails);
     }
     if ($this->realnames) {
       $where[] = qsprintf($conn_r,
                           'user.realName IN (%Ls)',
                           $this->realnames);
     }
     if ($this->phids) {
       $where[] = qsprintf($conn_r,
                           'user.phid IN (%Ls)',
                           $this->phids);
     }
     if ($this->ids) {
       $where[] = qsprintf($conn_r,
                           'user.id IN (%Ld)',
                           $this->ids);
     }
 
     return $this->formatWhereClause($where);
   }
 }