diff --git a/package/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade b/package/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade
index a12ce78eb85e9a12ac1d883e82c0039a3a86dd86..bd3a51d78e2bfdcc5c533ba1f47d6c2e2cdb9b8a 100755
--- a/package/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade
+++ b/package/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-for script in /lib/gluon/upgrade/*; do
-	"$script"
-done
+gluon-reconfigure
+
+exit 0
diff --git a/package/gluon-core/files/usr/bin/gluon-reconfigure b/package/gluon-core/files/usr/bin/gluon-reconfigure
new file mode 100755
index 0000000000000000000000000000000000000000..6e7add98db274f11463eaebe914a16e58575b9e3
--- /dev/null
+++ b/package/gluon-core/files/usr/bin/gluon-reconfigure
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+cd /lib/gluon/upgrade || exit 1
+
+err=0
+
+for script in *; do
+	echo "Configuring: ${script}"
+	./"$script" || err=1
+done
+
+if [ $err -eq 1 ]; then
+	echo 'One or more upgrade scripts failed. Please review the above error messages.'
+	exit 1
+fi
+
+exit 0