diff --git a/src/art/artJS.js b/src/art/artJS.js
index f58087b3665de17ee06004d268425ba945a67eb4..8536de1254de7a353625b932b61f5c049fef066c 100644
--- a/src/art/artJS.js
+++ b/src/art/artJS.js
@@ -173,31 +173,41 @@ App.Art.webglInitialize = function() {
 	let loadLockID = LoadScreen.lock();
 	let script = document.createElement("script");
 	script.onload = function() {
-		// load model/morphs/textures assets
-		let sceneData = App.Art.sceneGetData();
-		// load default dictionary containing camera/light/morph/material values
-		let scene = App.Art.sceneGetParams();
-		scene.lockView = false;
-		scene.resetView = false;
-		scene.faceView = true;
-		scene.camera.xr = -6;
-		scene.camera.z = -275;
-		scene.camera.y = 127;
-		scene.camera.fov = 40;
+		try {
+			// load model/morphs/textures assets
+			let sceneData = App.Art.sceneGetData();
+			// load default dictionary containing camera/light/morph/material values
+			let scene = App.Art.sceneGetParams();
+			scene.lockView = false;
+			scene.resetView = false;
+			scene.faceView = true;
+			scene.camera.xr = -6;
+			scene.camera.z = -275;
+			scene.camera.y = 127;
+			scene.camera.fov = 40;
 
-		App.Art.scenes = {};
-		App.Art.defaultScene = JSON.parse(JSON.stringify(scene));
+			App.Art.scenes = {};
+			App.Art.defaultScene = JSON.parse(JSON.stringify(scene));
 
-		// start Webgl engine, textures are streamed asynchronously
-		App.Art.engine = new App.Art.Engine();
-		App.Art.engine.bind(sceneData, scene);
-		App.Art.engineReady = true;
-		LoadScreen.unlock(loadLockID);
+			// start Webgl engine, textures are streamed asynchronously
+			App.Art.engine = new App.Art.Engine();
+			App.Art.engine.bind(sceneData, scene);
+			App.Art.engineReady = true;
+			LoadScreen.unlock(loadLockID);
 
-		// when ready fires event to art elements to start rendering
-		let containers = document.getElementsByClassName("artContainer");
-		for (let i = 0; i < containers.length; i++) {
-			containers[i].dispatchEvent(new Event("engineLoaded"));
+			// when ready fires event to art elements to start rendering
+			let containers = document.getElementsByClassName("artContainer");
+			for (let i = 0; i < containers.length; i++) {
+				containers[i].dispatchEvent(new Event("engineLoaded"));
+			}
+		} catch(e) {
+			App.Art.engineReady = false;
+			LoadScreen.unlock(loadLockID);
+
+			let containers = document.getElementsByClassName("artContainer");
+			for (let i = 0; i < containers.length; i++) {
+				containers[i].dispatchEvent(new Event("engineFailed2"));
+			}
 		}
 	};
 	script.onerror = function() {
@@ -246,6 +256,11 @@ App.Art.webglArtElement = function(slave, artSize) {
 		container.innerText = "Failed to start WebGL engine.";
 	}, true);
 
+	container.addEventListener("engineFailed2", function(e) {
+		container.style.color = "#BB2027";
+		container.innerText = "Art asset out of date.";
+	}, true);
+
 	// incase engine is loaded, trigger listeners manually
 	if (App.Art.engineReady === true) {
 		container.dispatchEvent(new Event("engineLoaded"));