diff --git a/frontend-js/src/main/js/gui/Legend.js b/frontend-js/src/main/js/gui/Legend.js
index ebcaa117926658712cd47d1cd7a9cf3c55597cb9..bbb0fdec575d008edac6260d553293d9ac504952 100644
--- a/frontend-js/src/main/js/gui/Legend.js
+++ b/frontend-js/src/main/js/gui/Legend.js
@@ -107,12 +107,38 @@ function createLegendSlide(file, index) {
   return result;
 }
 
+function getValidLegendFiles(legendFiles) {
+  var result = [];
+
+  var promises = [];
+  legendFiles.forEach(function (file) {
+    result.push(file);
+    var url = file.getValue();
+    if (url.indexOf("http") !== 0 && "" !== url) {
+      url = ServerConnector.getServerBaseUrl() + url;
+    }
+    promises.push(ServerConnector.sendGetRequest(url).catch(function (error) {
+      var index = result.indexOf(file);
+      if (index > -1) {
+        result.splice(index, 1);
+      }
+    }));
+  });
+
+  return Promise.all(promises).then(function () {
+    return result;
+  });
+}
+
 Legend.prototype.init = function () {
+  require('request').debug = true;
   var self = this;
   var element = self.getElement();
   var menu = self.getControlElement(PanelControlElementType.LEGEND_INDICATORS_OL);
   var slides = self.getControlElement(PanelControlElementType.LEGEND_SLIDES_DIV);
   return ServerConnector.getConfigurationParam(ConfigurationType.LEGEND_FILES).then(function (legendFiles) {
+    return getValidLegendFiles(legendFiles);
+  }).then(function (legendFiles) {
     for (var i = 0; i < legendFiles.length; i++) {
       var legendFile = legendFiles[i];
       menu.appendChild(createLegendIndicator(legendFile, i));
@@ -120,6 +146,7 @@ Legend.prototype.init = function () {
     }
     $(element).carousel();
   });
+
 };
 
 module.exports = Legend;
diff --git a/frontend-js/src/test/js/gui/Legend-test.js b/frontend-js/src/test/js/gui/Legend-test.js
index bd494e7b6b4023d9a5d261bd5862f7bd96f6456c..965085694c2a272b458dbb47bb7752b7fbf79324 100644
--- a/frontend-js/src/test/js/gui/Legend-test.js
+++ b/frontend-js/src/test/js/gui/Legend-test.js
@@ -3,6 +3,7 @@
 require("../mocha-config.js");
 
 var Legend = require('../../../main/js/gui/Legend');
+var ConfigurationType = require('../../../main/js/ConfigurationType');
 
 var chai = require('chai');
 var assert = chai.assert;
@@ -22,15 +23,42 @@ describe('Legend', function () {
 
   });
 
-  it('init', function () {
-    var map = helper.createCustomMap();
+  describe('init', function () {
+    it('default', function () {
+      var map = helper.createCustomMap();
 
-    var legend = new Legend({
-      element: testDiv,
-      customMap: map
+      var legend = new Legend({
+        element: testDiv,
+        customMap: map
+      });
+
+      return legend.init().then(function () {
+        //there are no elements visible (all of them have urls that cannot be resolved)
+        assert.equal(0, $(".item", testDiv).length);
+      });
     });
 
-    return legend.init();
+    it('existing file', function () {
+      var map = helper.createCustomMap();
+
+      var legend = new Legend({
+        element: testDiv,
+        customMap: map
+      });
+
+      var originalUrl;
+      var files;
+      return ServerConnector.getConfigurationParam(ConfigurationType.LEGEND_FILES).then(function (legendFiles) {
+        files = legendFiles;
+        originalUrl = legendFiles[0].getValue();
+        legendFiles[0].setValue("https://www.google.pl/");
+        return legend.init();
+      }).then(function () {
+        assert.equal(1, $(".item", testDiv).length);
+      }).finally(function () {
+        files[0].setValue(originalUrl);
+      });
+    });
   });
 
 });