diff --git a/net/haproxy/Makefile b/net/haproxy/Makefile
index fa8508ba7..c2f195fc2 100644
--- a/net/haproxy/Makefile
+++ b/net/haproxy/Makefile
@@ -1,5 +1,5 @@
PLUGIN_NAME= haproxy
-PLUGIN_VERSION= 3.0
+PLUGIN_VERSION= 3.1
PLUGIN_COMMENT= Reliable, high performance TCP/HTTP load balancer
PLUGIN_DEPENDS= haproxy
PLUGIN_MAINTAINER= opnsense@moov.de
diff --git a/net/haproxy/pkg-descr b/net/haproxy/pkg-descr
index 4e83fe306..69ef2148a 100644
--- a/net/haproxy/pkg-descr
+++ b/net/haproxy/pkg-descr
@@ -6,6 +6,14 @@ very high loads while needing persistence or Layer7 processing.
Plugin Changelog
================
+3.1
+
+Fixed:
+* fix items that cannot be deleted (#2266)
+
+Changed:
+* rules: only accept a single value for backend/server fields (#2266)
+
3.0
Added:
diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml
index 8c172b6cf..58ac8e28e 100644
--- a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml
+++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml
@@ -1,6 +1,6 @@
//OPNsense/HAProxy
- 3.0.0
+ 3.1.0
the HAProxy load balancer
@@ -2086,7 +2086,7 @@
Related backend item not found
- Y
+ N
N
@@ -2098,7 +2098,7 @@
Related server item not found
- Y
+ N
N
diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Migrations/M3_1_0.php b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Migrations/M3_1_0.php
new file mode 100644
index 000000000..a41024c00
--- /dev/null
+++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/Migrations/M3_1_0.php
@@ -0,0 +1,55 @@
+getNodeByReference('actions.action')->iterateItems() as $action) {
+ switch ((string)$action->type) {
+ case 'use_backend':
+ // do nothing, keep the value
+ break;
+ case 'use_server':
+ // do nothing, keep the value
+ break;
+ default:
+ // Clear referenced items if they are not in use.
+ $action->use_backend = null;
+ $action->use_server = null;
+ break;
+ }
+ }
+ }
+}