{"record":{"id":"e72d9a9d877cd993","repo":"alibaba/nacos","slug":"agent-draft-status-must-be-draft","errorCode":null,"errorMessage":"Agent draft status must be draft","messagePattern":"Agent draft status must be draft","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":400,"severity":"error","filePath":"ai/src/main/java/com/alibaba/nacos/ai/service/agent/AgentPersistenceService.java","lineNumber":786,"sourceCode":"    \n    private void validateSubsequentDraftInputs(String namespaceId, String agentName,\n        AgentVersionDetail draft, String basedOnVersion) {\n        AgentValidationUtils.validateNamespaceId(namespaceId);\n        AgentValidationUtils.validateAgentName(agentName);\n        if (draft == null) {\n            throw new IllegalArgumentException(\"Agent draft must not be null\");\n        }\n        AgentValidationUtils.validateVersion(draft.getVersion());\n        if (draft.getNamespaceId() != null\n            && !namespaceId.equals(draft.getNamespaceId())) {\n            throw new IllegalArgumentException(\"Agent draft namespaceId does not match request\");\n        }\n        if (draft.getAgentName() != null && !agentName.equals(draft.getAgentName())) {\n            throw new IllegalArgumentException(\"Agent draft agentName does not match request\");\n        }\n        if (draft.getStatus() != null\n            && !AiConstants.Agent.VERSION_STATUS_DRAFT.equals(draft.getStatus())) {\n            throw new IllegalArgumentException(\"Agent draft status must be draft\");\n        }\n        if (draft.getContentDigest() != null || draft.getCreateTime() != null\n            || draft.getUpdateTime() != null) {\n            throw new IllegalArgumentException(\n                \"Agent draft must not contain read-only projection fields\");\n        }\n        boolean directContent = draft.getCallInterfaces() != null;\n        boolean copiedContent = StringUtils.isNotBlank(basedOnVersion);\n        if (directContent == copiedContent) {\n            throw new IllegalArgumentException(\n                \"Agent draft must contain either callInterfaces or basedOnVersion\");\n        }\n        if (copiedContent) {\n            AgentValidationUtils.validateVersion(basedOnVersion);\n            if (draft.getVersion().equals(basedOnVersion)) {\n                throw new IllegalArgumentException(\n                    \"Agent draft Version must differ from basedOnVersion\");\n            }","sourceCodeStart":768,"sourceCodeEnd":804,"githubUrl":"https://github.com/alibaba/nacos/blob/9b989acdf181d00898f2e8839257bb2b2a3cefe3/ai/src/main/java/com/alibaba/nacos/ai/service/agent/AgentPersistenceService.java#L768-L804","documentation":"Error \"Agent draft status must be draft\" thrown in alibaba/nacos.","triggerScenarios":"Thrown at ai/src/main/java/com/alibaba/nacos/ai/service/agent/AgentPersistenceService.java:786 when the library encounters an invalid state.","commonSituations":"Persisting a version as a draft while its status is not draft.","solutions":["Correct the invalid value for agent draft status to match the expected format or allowed set, then retry."],"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"}