diff --git a/mercurial/revset.py b/mercurial/revset.py
index d89045a66e01c2076ec60f3f0b808de045690070_bWVyY3VyaWFsL3JldnNldC5weQ==..97528adbf74b30335b67cc21d88046d58fa564af_bWVyY3VyaWFsL3JldnNldC5weQ== 100644
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -1513,6 +1513,7 @@
 # for internal use
 def _notpublic(repo, subset, x):
     getargs(x, 0, 0, "_notpublic takes no arguments")
+    repo._phasecache.loadphaserevs(repo) # ensure phase's sets are loaded
     if repo._phasecache._phasesets:
         s = set()
         for u in repo._phasecache._phasesets[1:]: