title: TypeError: json is not iterable
body: <p>The Error</p>
  
  <pre><code>C:\Development\AlphaLauncher-Recode\app\assets\js\loggerutil.js:29 [Launcher] TypeError: json is not iterable
      at DistroIndex._resolveInstances (C:\Development\AlphaLauncher-Recode\app\assets\js\distromanager.js:260)
      at Function.fromJSON (C:\Development\AlphaLauncher-Recode\app\assets\js\distromanager.js:253)
      at Request._callback (C:\Development\AlphaLauncher-Recode\app\assets\js\distromanager.js:327)
      at Request.self.callback (C:\Development\AlphaLauncher-Recode\node_modules\request\request.js:185)
      at Request.emit (events.js:203)
      at Request.&lt;anonymous&gt; (C:\Development\AlphaLauncher-Recode\node_modules\request\request.js:1161)
      at Request.emit (events.js:203)
      at IncomingMessage.&lt;anonymous&gt; (C:\Development\AlphaLauncher-Recode\node_modules\request\request.js:1083)
      at Object.onceWrapper (events.js:291)
      at IncomingMessage.emit (events.js:208)
  </code></pre>
  
  <p>This is the error I get when I try to run the launcher that I've made. The source code is not made public yet on my github, however, what I need it to do is grab the distribution index from my dropbox to allow the launcher to load in the instance for the launcher to run.</p>
  
  <p>The code for the request and catch.</p>
  
  <pre><code>exports.DistroIndex;
  
  exports.Types = {
      Library: 'Library',
      ForgeHosted: 'ForgeHosted',
      Forge: 'Forge',
      ForgeMod: 'ForgeMod',
      File: 'File',
      VersionManifest: 'VersionManifest'
  }
  
  let data = null;
  
  exports.pullRemote = async function(distroURL) {
      return new Promise((resolve, reject) =&gt; {
          let opts = {
              url: distroURL,
              timeout: 10000
          }
          request(opts, (error, _resp, body) =&gt; {
              if(!error) {
                  try {
                      data = DistroIndex.fromJSON(JSON.parse(body));
                      resolve(data);
                  } 
                  catch (e) {
                      reject(e);
                  }
              }
              else {
                  reject(error);
              }
          });
      });
  }
  
  exports.getDistribution = function() {
      return data;
  }
  </code></pre>
  
  <p>I've been playing around with it for a while, any idea on how to fix this? I've been trying but maybe with a fresh pair of eyes, we can fix the problem together. </p>
  
  <p>This is a minecraft launcher by the way with automatic updates and modded jar downloads.</p>