diff --git a/src/octoprint/static/js/app/viewmodels/control.js b/src/octoprint/static/js/app/viewmodels/control.js
index a4a0bf9f..6ad7f4cf 100644
--- a/src/octoprint/static/js/app/viewmodels/control.js
+++ b/src/octoprint/static/js/app/viewmodels/control.js
@@ -22,6 +22,7 @@ $(function() {
self.extrusionAmount = ko.observable(undefined);
self.controls = ko.observableArray([]);
+ self.staticID = 0;
self.tools = ko.observableArray([]);
@@ -131,6 +132,8 @@ $(function() {
};
self._processControl = function (control) {
+ control.id = ko.observable("settingsCustomControl_id" + self.staticID++);
+
if (control.hasOwnProperty("processed") && control.processed) {
return control;
}
diff --git a/src/octoprint/templates/tabs/control.jinja2 b/src/octoprint/templates/tabs/control.jinja2
index 63f40694..04a523f8 100644
--- a/src/octoprint/templates/tabs/control.jinja2
+++ b/src/octoprint/templates/tabs/control.jinja2
@@ -108,19 +108,19 @@