diff --git a/app/lib/dal/indexDAL/leveldb/indexers/LevelMIndexExpiresOnIndexer.ts b/app/lib/dal/indexDAL/leveldb/indexers/LevelMIndexExpiresOnIndexer.ts
index 483a8595155c0de2aa35fde3288e4e952f4ccd7e..a72e77acf086b0a846719ab468d015922dccecfc 100644
--- a/app/lib/dal/indexDAL/leveldb/indexers/LevelMIndexExpiresOnIndexer.ts
+++ b/app/lib/dal/indexDAL/leveldb/indexers/LevelMIndexExpiresOnIndexer.ts
@@ -59,13 +59,20 @@ export class LevelMIndexExpiresOnIndexer extends LevelDBDataIndex<Pubkey[], Mind
 
         }
       })
-    )
-    // Case 2: expiration REVERT
-    const values: MindexEntry[] = Underscore.values(newStateByPub).map(entries => reduce(entries))
-    const byExpiredOn = reduceGroupBy(values, "expired_on")
-    await Promise.all(Underscore.keys(byExpiredOn)
-      .map(async expiresOn => this.addAllKeysToExpiresOn(pint(expiresOn), byExpiredOn[expiresOn].map(e => e.pub)))
-    )
+    );
+    // Case 2: REVERT expired = put back the value of `expires_on`
+    const values: MindexEntry[] = Underscore.values(
+      newStateByPub
+    ).map((entries) => reduce(entries));
+    const byExpiresOnForExpired = reduceGroupBy(values, "expires_on");
+    await Promise.all(
+      Underscore.keys(byExpiresOnForExpired).map(async (expiresOn) =>
+        this.addAllKeysToExpiresOn(
+          pint(expiresOn),
+          byExpiresOnForExpired[expiresOn].map((e) => e.pub)
+        )
+      )
+    );
   }
 
   async addAllKeysToExpiresOn(expiresOn: number, pubkeys: Pubkey[]): Promise<void> {
@@ -75,7 +82,9 @@ export class LevelMIndexExpiresOnIndexer extends LevelDBDataIndex<Pubkey[], Mind
       entry = []
     }
     for (const pub of pubkeys) {
-      entry.push(pub)
+      if (!entry.includes(pub)) {
+        entry.push(pub);
+      }
     }
     await this.put(key, entry)
   }