diff --git a/js/lbry.js b/js/lbry.js
index 2800bac44..088bccf9a 100644
--- a/js/lbry.js
+++ b/js/lbry.js
@@ -245,8 +245,8 @@ lbry.getCostInfoForName = function(name, callback, errorCallback) {
   });
 }
 
-lbry.getFileStatus = function(name, callback) {
-  lbry.call('get_lbry_file', { 'name': name }, callback);
+lbry.getFileStatus = function(name, callback, errorCallback) {
+  lbry.call('get_lbry_file', { 'name': name }, callback, errorCallback);
 }
 
 lbry.getFilesInfo = function(callback) {
@@ -296,22 +296,23 @@ lbry.revealFile = function(sdHash, callback) {
 }
 
 lbry.getFileInfoWhenListed = function(name, callback, timeoutCallback, tryNum=0) {
-  // Calls callback with file info when it appears in the list of files returned by lbry.getFilesInfo().
-  // If timeoutCallback is provided, it will be called if the file fails to appear.
-  lbry.getFilesInfo(function(fileInfos) {
-    for (var fileInfo of fileInfos) {
-      if (fileInfo.lbry_uri == name) {
-        callback(fileInfo);
-        return;
-      }
-    }
-
+  function scheduleNextCheckOrTimeout() {
     if (timeoutCallback && tryNum > 200) {
       timeoutCallback();
     } else {
-      setTimeout(function() { lbry.getFileInfoWhenListed(name, callback, timeoutCallback, tryNum + 1) }, 250);
+      setTimeout(() => lbry.getFileInfoWhenListed(name, callback, timeoutCallback, tryNum + 1), 250);
     }
-  });
+  }
+
+  // Calls callback with file info when it appears in the lbrynet file manager.
+  // If timeoutCallback is provided, it will be called if the file fails to appear.
+  lbry.getFileStatus(name, (fileInfo) => {
+    if (fileInfo) {
+      callback(fileInfo);
+    } else {
+      scheduleNextCheckOrTimeout();
+    }
+  }, () => scheduleNextCheckOrTimeout());
 }
 
 lbry.publish = function(params, fileListedCallback, publishedCallback, errorCallback) {