diff --git a/sysutils/puppet-agent/pkg-descr b/sysutils/puppet-agent/pkg-descr
index 6ea5ec8e0..2fbad135e 100644
--- a/sysutils/puppet-agent/pkg-descr
+++ b/sysutils/puppet-agent/pkg-descr
@@ -11,6 +11,7 @@ Plugin Changelog
Added:
* add new options runinterval and runtimeout
+* add new option usecacheonfailure
Changed:
* add default values for Puppet Server + Environment
diff --git a/sysutils/puppet-agent/src/opnsense/mvc/app/controllers/OPNsense/PuppetAgent/forms/general.xml b/sysutils/puppet-agent/src/opnsense/mvc/app/controllers/OPNsense/PuppetAgent/forms/general.xml
index 6e5e408fe..adc9330b5 100644
--- a/sysutils/puppet-agent/src/opnsense/mvc/app/controllers/OPNsense/PuppetAgent/forms/general.xml
+++ b/sysutils/puppet-agent/src/opnsense/mvc/app/controllers/OPNsense/PuppetAgent/forms/general.xml
@@ -29,4 +29,10 @@
textThe maximum amount of time an agent run is allowed to take. Enter a number followed by one of the supported suffixes: "y" (years), "d" (days), "h" (hours), "m" (minutes), "s" (seconds).
+
+ puppetagent.general.UseCacheOnFailure
+
+ checkbox
+ Whether to use the cached configuration when the remote configuration will not compile.
+
diff --git a/sysutils/puppet-agent/src/opnsense/mvc/app/models/OPNsense/PuppetAgent/PuppetAgent.xml b/sysutils/puppet-agent/src/opnsense/mvc/app/models/OPNsense/PuppetAgent/PuppetAgent.xml
index 637901373..ffba1a25d 100644
--- a/sysutils/puppet-agent/src/opnsense/mvc/app/models/OPNsense/PuppetAgent/PuppetAgent.xml
+++ b/sysutils/puppet-agent/src/opnsense/mvc/app/models/OPNsense/PuppetAgent/PuppetAgent.xml
@@ -30,6 +30,10 @@
Should be a number between 1 and 8 characters, optionally followed by either "y", "d", "h", "m" or "s".Y
+
+ 1
+ Y
+
diff --git a/sysutils/puppet-agent/src/opnsense/service/templates/OPNsense/PuppetAgent/puppetagent.conf b/sysutils/puppet-agent/src/opnsense/service/templates/OPNsense/PuppetAgent/puppetagent.conf
index 86fb47632..51e6fa915 100644
--- a/sysutils/puppet-agent/src/opnsense/service/templates/OPNsense/PuppetAgent/puppetagent.conf
+++ b/sysutils/puppet-agent/src/opnsense/service/templates/OPNsense/PuppetAgent/puppetagent.conf
@@ -9,6 +9,11 @@ runinterval = {{ OPNsense.puppetagent.general.RunInterval }}
{% if OPNsense.puppetagent.general.RunTimeout|default("") != "" %}
runtimeout = {{ OPNsense.puppetagent.general.RunTimeout}}
{% endif %}
+{% if OPNsense.puppetagent.general.UseCacheOnFailure|default("0") == "1" %}
+usecacheonfailure = true
+{% else %}
+usecacheonfailure = false
+{% endif %}
{% if helpers.exists('OPNsense.puppetagent.general') and not helpers.empty('OPNsense.puppetagent.general.Environment') %}
[agent]
environment = {{ OPNsense.puppetagent.general.Environment|default("") }}