From b26816468601d19125d62ce5dc5ac8f42eef0c36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 3 Mar 2026 11:03:06 -0500 Subject: [PATCH] fix: closes #14041, show specific error message if config fails to save --- public/language/en-GB/error.json | 1 + public/src/admin/settings.js | 2 +- public/src/modules/settings.js | 2 +- src/meta/configs.js | 5 ++++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/public/language/en-GB/error.json b/public/language/en-GB/error.json index 720e615400..7ef3978faa 100644 --- a/public/language/en-GB/error.json +++ b/public/language/en-GB/error.json @@ -1,5 +1,6 @@ { "invalid-data": "Invalid Data", + "invalid-config-field-value": "Invalid value for config field \"%1\": %2", "invalid-json": "Invalid JSON", "wrong-parameter-type": "A value of type %3 was expected for property `%1`, but %2 was received instead", "required-parameters-missing": "Required parameters were missing from this API call: %1", diff --git a/public/src/admin/settings.js b/public/src/admin/settings.js index 29ede2f502..46c0fa4380 100644 --- a/public/src/admin/settings.js +++ b/public/src/admin/settings.js @@ -104,7 +104,7 @@ define('admin/settings', [ if (err) { return alerts.alert({ alert_id: 'config_status', - timeout: 2500, + timeout: 5000, title: '[[admin/admin:changes-not-saved]]', message: `[[admin/admin:changes-not-saved-message, ${err.message}]]`, type: 'danger', diff --git a/public/src/modules/settings.js b/public/src/modules/settings.js index bb54ba7436..01fa7bf800 100644 --- a/public/src/modules/settings.js +++ b/public/src/modules/settings.js @@ -544,7 +544,7 @@ define('settings', ['hooks', 'alerts'], function (hooks, alerts) { title: '[[admin/admin:changes-not-saved]]', message: `[[admin/admin:changes-not-saved-message, ${err.message}]]`, type: 'error', - timeout: 2500, + timeout: 5000, }); } else { const saveBtn = document.getElementById('save'); diff --git a/src/meta/configs.js b/src/meta/configs.js index f5adf5b000..f686b3dd72 100644 --- a/src/meta/configs.js +++ b/src/meta/configs.js @@ -8,6 +8,7 @@ const winston = require('winston'); const db = require('../database'); const pubsub = require('../pubsub'); const Meta = require('./index'); +const translator = require('../translator'); const cacheBuster = require('./cacheBuster'); const defaults = require('../../install/data/defaults.json'); @@ -190,7 +191,9 @@ function ensureInteger(data, field, min) { if (data.hasOwnProperty(field)) { data[field] = parseInt(data[field], 10); if (!(data[field] >= min)) { - throw new Error('[[error:invalid-data]]'); + throw new Error(translator.compile( + 'error:invalid-config-field-value', field, data[field] + )); } } }