{"record":{"id":"deac26381879d9b2","repo":"alibaba/nacos","slug":"plugin-config-key-requires-restart-and-cannot-be-u","errorCode":null,"errorMessage":"Plugin config key requires restart and cannot be updated at runtime: {}","messagePattern":"Plugin config key requires restart and cannot be updated at runtime: (.+?)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"core/src/main/java/com/alibaba/nacos/core/plugin/config/PluginConfigBasicChecker.java","lineNumber":125,"sourceCode":"            }\n        }\n    }\n    \n    private void validateRuntimeChangedKeys(Map<String, String> currentConfig,\n        Map<String, String> newConfig, Map<String, ConfigItemDefinition> definitions) {\n        Map<String, String> current = currentConfig == null ? Collections.emptyMap()\n            : currentConfig;\n        Set<String> changedKeys = new LinkedHashSet<>(current.keySet());\n        changedKeys.addAll(newConfig.keySet());\n        for (String key : changedKeys) {\n            if (Objects.equals(current.get(key), newConfig.get(key))\n                && current.containsKey(key) == newConfig.containsKey(key)) {\n                continue;\n            }\n            ConfigItemDefinition definition = definitions.get(key);\n            if (definition != null\n                && ConfigItemEffectMode.RUNTIME != definition.getEffectMode()) {\n                throw new IllegalArgumentException(\"Plugin config key requires restart and cannot \"\n                    + \"be updated at runtime: \" + key);\n            }\n        }\n    }\n    \n    private void validateConfigValues(Map<String, String> config,\n        Map<String, ConfigItemDefinition> definitions) {\n        for (Map.Entry<String, String> entry : config.entrySet()) {\n            validateValueType(definitions.get(entry.getKey()), entry.getValue());\n        }\n    }\n    \n    private void validateValueType(ConfigItemDefinition definition, String value) {\n        ConfigItemType type = definition.getType();\n        if (type == null || ConfigItemType.STRING == type) {\n            return;\n        }\n        switch (type) {","sourceCodeStart":107,"sourceCodeEnd":143,"githubUrl":"https://github.com/alibaba/nacos/blob/9b989acdf181d00898f2e8839257bb2b2a3cefe3/core/src/main/java/com/alibaba/nacos/core/plugin/config/PluginConfigBasicChecker.java#L107-L143","documentation":"Error \"Plugin config key requires restart and cannot be updated at runtime: {}\" thrown in alibaba/nacos.","triggerScenarios":"Thrown at core/src/main/java/com/alibaba/nacos/core/plugin/config/PluginConfigBasicChecker.java:125 when the library encounters an invalid state.","commonSituations":"Updating a plugin config key at runtime that requires restart.","solutions":["Apply the change through the restart-aware configuration path and restart the server."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"9b989acdf181d00898f2e8839257bb2b2a3cefe3","analyzedAt":"2026-08-14T07:17:31.569Z","schemaVersion":2},"datasetVersion":"2026-08-14T10:17:34.591Z"}