fixes #2842 using unregistered renderer or missing path
diff --git a/player/js/animation/AnimationItem.js b/player/js/animation/AnimationItem.js
index a299026..8930fae 100644
--- a/player/js/animation/AnimationItem.js
+++ b/player/js/animation/AnimationItem.js
@@ -20,7 +20,7 @@
 import dataManager from '../utils/DataManager';
 import markerParser from '../utils/markers/markerParser';
 import ProjectInterface from '../utils/expressions/ProjectInterface';
-import { getRenderer } from '../renderers/renderersManager';
+import { getRenderer, getRegisteredRenderer } from '../renderers/renderersManager';
 
 const AnimationItem = function () {
   this._cbs = [];
@@ -153,7 +153,7 @@
           ? wrapperAttributes.getNamedItem('data-bm-renderer').value
           : wrapperAttributes.getNamedItem('bm-renderer')
             ? wrapperAttributes.getNamedItem('bm-renderer').value
-            : 'canvas';
+            : getRegisteredRenderer() || 'canvas';
 
   var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary
     ? wrapperAttributes.getNamedItem('data-anim-loop').value
@@ -196,7 +196,11 @@
   if (prerender === 'false') {
     params.prerender = false;
   }
-  this.setParams(params);
+  if (!params.path) {
+    this.trigger('destroy');
+  } else {
+    this.setParams(params);
+  }
 };
 
 AnimationItem.prototype.includeLayers = function (data) {
diff --git a/player/js/renderers/renderersManager.js b/player/js/renderers/renderersManager.js
index 79e3900..13bc111 100644
--- a/player/js/renderers/renderersManager.js
+++ b/player/js/renderers/renderersManager.js
@@ -8,7 +8,22 @@
   return renderers[key];
 }
 
+function getRegisteredRenderer() {
+  // Returns canvas by default for compatibility
+  if (renderers.canvas) {
+    return 'canvas';
+  }
+  // Returns any renderer that is registered
+  for (const key in renderers) {
+    if (renderers[key]) {
+      return key;
+    }
+  }
+  return '';
+}
+
 export {
   registerRenderer,
   getRenderer,
+  getRegisteredRenderer,
 };