diff --git a/owners-common/src/main/java/com/vmware/gerrit/owners/common/AccountsImpl.java b/owners-common/src/main/java/com/vmware/gerrit/owners/common/AccountsImpl.java
index a1fc7b0..e685ffd 100644
--- a/owners-common/src/main/java/com/vmware/gerrit/owners/common/AccountsImpl.java
+++ b/owners-common/src/main/java/com/vmware/gerrit/owners/common/AccountsImpl.java
@@ -20,7 +20,6 @@
 import com.google.gerrit.reviewdb.client.Account;
 import com.google.gerrit.reviewdb.client.Account.Id;
 import com.google.gerrit.reviewdb.client.AccountGroup;
-import com.google.gerrit.reviewdb.server.ReviewDb;
 import com.google.gerrit.server.IdentifiedUser;
 import com.google.gerrit.server.account.AccountCache;
 import com.google.gerrit.server.account.AccountResolver;
@@ -44,7 +43,7 @@
 public class AccountsImpl implements Accounts {
   private static final Logger log = LoggerFactory.getLogger(AccountsImpl.class);
 
-  private final ReviewDb db;
+  private final OneOffRequestContext requestCtx;
   private final AccountResolver resolver;
   private final AccountCache byId;
   private final GroupCache groupCache;
@@ -56,14 +55,14 @@
   public AccountsImpl(
       AccountResolver resolver,
       AccountCache byId,
-      ReviewDb db,
+      OneOffRequestContext requestCtx,
       GroupCache groupCache,
       GroupMembers.Factory groupMembersFactory,
       OneOffRequestContext oneOffRequestContext,
       IdentifiedUser.GenericFactory userFactory) {
     this.resolver = resolver;
     this.byId = byId;
-    this.db = db;
+    this.requestCtx = requestCtx;
     this.groupCache = groupCache;
     this.groupMembers = groupMembersFactory;
     this.adminUser = userFactory.create(new Account.Id(1000000));
@@ -102,8 +101,8 @@
   }
 
   private Set<Account.Id> findUserOrEmail(String nameOrEmail) {
-    try {
-      Set<Id> accountIds = resolver.findAll(db, nameOrEmail);
+    try (ManualRequestContext ctx = oneOffRequestContext.open()) {
+      Set<Id> accountIds = resolver.findAll(ctx.getReviewDbProvider().get(), nameOrEmail);
       if (accountIds.isEmpty()) {
         log.warn("User '{}' does not resolve to any account.", nameOrEmail);
         return accountIds;
diff --git a/owners/src/main/java/com/vmware/gerrit/owners/OwnersModule.java b/owners/src/main/java/com/vmware/gerrit/owners/OwnersModule.java
index 3b5b567..c4a5f80 100644
--- a/owners/src/main/java/com/vmware/gerrit/owners/OwnersModule.java
+++ b/owners/src/main/java/com/vmware/gerrit/owners/OwnersModule.java
@@ -22,6 +22,8 @@
 public class OwnersModule extends AbstractModule {
   @Override
   protected void configure() {
-    DynamicSet.bind(binder(), PredicateProvider.class).to(OwnerPredicateProvider.class);
+    DynamicSet.bind(binder(), PredicateProvider.class)
+        .to(OwnerPredicateProvider.class)
+        .asEagerSingleton();
   }
 }
