{"record":{"id":"04734c82881927cf","repo":"alibaba/nacos","slug":"20005-04734c","errorCode":"20005","errorMessage":"Cas publish fail, server md5 may have changed.","messagePattern":"Cas publish fail, server md5 may have changed\\.","errorType":"http","errorClass":"NacosApiException","httpStatus":500,"severity":"error","filePath":"config/src/main/java/com/alibaba/nacos/config/server/service/ConfigOperationService.java","lineNumber":132,"sourceCode":"            configForm.setGrayVersion(TagGrayRule.VERSION);\n            configForm.setGrayPriority(Integer.MAX_VALUE - 1);\n            publishConfigGray(TagGrayRule.TYPE_TAG, configForm, configRequestInfo);\n            return Boolean.TRUE;\n        }\n        \n        ConfigOperateResult configOperateResult;\n        \n        //formal publish\n        if (StringUtils.isNotBlank(configRequestInfo.getCasMd5())) {\n            configOperateResult =\n                configInfoPersistService.insertOrUpdateCas(configRequestInfo.getSrcIp(),\n                    configForm.getSrcUser(), configInfo, configAdvanceInfo);\n            if (!configOperateResult.isSuccess()) {\n                LOGGER.warn(\n                    \"[cas-publish-config-fail] srcIp = {}, dataId= {}, casMd5 = {}, msg = server md5 may have changed.\",\n                    configRequestInfo.getSrcIp(), configForm.getDataId(),\n                    configRequestInfo.getCasMd5());\n                throw new NacosApiException(HttpStatus.INTERNAL_SERVER_ERROR.value(),\n                    ErrorCode.RESOURCE_CONFLICT,\n                    \"Cas publish fail, server md5 may have changed.\");\n            }\n        } else {\n            if (configRequestInfo.getUpdateForExist()) {\n                configOperateResult =\n                    configInfoPersistService.insertOrUpdate(configRequestInfo.getSrcIp(),\n                        configForm.getSrcUser(), configInfo, configAdvanceInfo);\n            } else {\n                try {\n                    configOperateResult =\n                        configInfoPersistService.addConfigInfo(configRequestInfo.getSrcIp(),\n                            configForm.getSrcUser(), configInfo, configAdvanceInfo);\n                } catch (DataIntegrityViolationException ive) {\n                    configOperateResult = new ConfigOperateResult(false);\n                }\n            }\n        }","sourceCodeStart":114,"sourceCodeEnd":150,"githubUrl":"https://github.com/alibaba/nacos/blob/9b989acdf181d00898f2e8839257bb2b2a3cefe3/config/src/main/java/com/alibaba/nacos/config/server/service/ConfigOperationService.java#L114-L150","documentation":"Error \"Cas publish fail, server md5 may have changed.\" thrown in alibaba/nacos.","triggerScenarios":"Thrown at config/src/main/java/com/alibaba/nacos/config/server/service/ConfigOperationService.java:132 when the library encounters an invalid state.","commonSituations":"CAS publish failed because the config md5 changed concurrently.","solutions":["Inspect the server logs for the underlying cause, fix it, and retry the operation.","Re-read the latest state and retry the operation with the fresh version/md5."],"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"}