diff --git a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
index 94fc32c..21c4965 100644
--- a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
+++ b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
@@ -3361,6 +3361,10 @@
           serviceclassPath(currentUser(), SliderKeys.APP_TYPE));
       return new ArrayList<String>(recordMap.keySet());
 /// JDK7    } catch (YarnException | IOException e) {
+    } catch (PathNotFoundException e) {
+      log.debug("No registry path for slider instances for current user: {}", e, e);
+      // no entries: return an empty list
+      return new ArrayList<String>(0);
     } catch (IOException e) {
       throw e;
     } catch (YarnException e) {
diff --git a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy
index c31e9d3..160f4b7 100644
--- a/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/agent/standalone/TestStandaloneAgentAM.groovy
@@ -30,6 +30,7 @@
 import org.apache.slider.client.SliderClient
 import org.apache.slider.common.SliderKeys
 import org.apache.slider.common.params.ActionRegistryArgs
+import org.apache.slider.common.tools.Duration
 import org.apache.slider.core.build.InstanceBuilder
 import org.apache.slider.core.conf.AggregateConf
 import org.apache.slider.core.exceptions.SliderException
@@ -110,9 +111,20 @@
     //switch to the slider ZK-based registry
     describe "service registry instance IDs"
 
-    def instanceIds = client.listRegisteredSliderInstances()
+    // iterate waiting for registry to come up
+    List<String> instanceIds = []
+    Duration duration = new Duration(10000)
+    duration.start()
+
+    while (!duration.limitExceeded && instanceIds.size() < 1) {
+      instanceIds = client.listRegisteredSliderInstances()
+      if (!instanceIds.size()) {
+        sleep(500)
+      }
+    }
 
     log.info("number of instanceIds: ${instanceIds.size()}")
+    assert instanceIds.size() >= 1
     instanceIds.each { String it -> log.info(it) }
 
     describe "Yarn registry"
