{"record":{"id":"d9ce0677c363d2bd","repo":"alibaba/spring-ai-alibaba","slug":"dataset-not-found","errorCode":null,"errorMessage":"Dataset not found: ","messagePattern":"Dataset not found: ","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"spring-ai-alibaba-admin/spring-ai-alibaba-admin-server-start/src/main/java/com/alibaba/cloud/ai/studio/admin/service/impl/DatasetVersionServiceImpl.java","lineNumber":48,"sourceCode":"public class DatasetVersionServiceImpl implements DatasetVersionService {\n\n    private final DatasetVersionMapper datasetVersionMapper;\n    private final DatasetMapper datasetMapper;\n    private final ExperimentMapper experimentMapper;\n\n    @Override\n    @Transactional\n    public DatasetVersion create(DatasetVersionCreateRequest request) {\n        log.info(\"Creating dataset version: {}\", request);\n\n        // Validate request\n        if (request.getDatasetId() == null) {\n            throw new IllegalArgumentException(\"Dataset ID cannot be null\");\n        }\n\n        //检查 dataset是否存在\n        if (datasetMapper.selectById(request.getDatasetId()) == null) {\n            throw new IllegalArgumentException(\"Dataset not found: \" + request.getDatasetId());\n        }\n\n        // 获取当前最大的version\n        DatasetVersionDO latestDatasetVersionDO = datasetVersionMapper.selectLatestVersion(request.getDatasetId());\n\n        String currentVersion = Objects.isNull(latestDatasetVersionDO)?null:latestDatasetVersionDO.getVersion();\n\n        // Generate version number\n        String versionNumber = VersionUtils.generateVersionNumber(currentVersion);\n\n\n        // Build entity\n        DatasetVersionDO datasetVersionDO = DatasetVersionDO.builder()\n                .datasetId(request.getDatasetId())\n                .version(versionNumber)\n                .description(request.getDescription())\n                .dataCount(request.getDatasetItems().size())\n                .createTime(LocalDateTime.now())","sourceCodeStart":30,"sourceCodeEnd":66,"githubUrl":"https://github.com/alibaba/spring-ai-alibaba/blob/f82da0b50f35744c13968191be2b1cd2452ef550/spring-ai-alibaba-admin/spring-ai-alibaba-admin-server-start/src/main/java/com/alibaba/cloud/ai/studio/admin/service/impl/DatasetVersionServiceImpl.java#L30-L66","documentation":"Thrown by DatasetVersionServiceImpl.create() when the parent dataset referenced by request.getDatasetId() does not exist (datasetMapper.selectById returns null). Versions can only be created for an existing dataset.","triggerScenarios":"Creating a version for a datasetId that was deleted, never created, or belongs to another environment/database.","commonSituations":"Client caches a dataset id after the dataset was removed; datasetId/versionId confusion; dev-vs-prod database mismatch; bulk-import scripts with fabricated ids.","solutions":["Verify the dataset exists via the dataset get/list API before creating a version","Create the dataset first if it does not exist","Check the datasetId value (not a version id) is being sent","Confirm both operations run against the same database/environment"],"exampleFix":"// before\nDatasetVersion v = datasetVersionService.create(req); // req.datasetId = 123 (never created)\n// after\nDataset d = datasetService.getById(req.getDatasetId());\nif (d == null) { d = datasetService.create(newDatasetRequest); req.setDatasetId(d.getId()); }\nDatasetVersion v = datasetVersionService.create(req);","handlingStrategy":"validation","validationCode":"if (req.getDatasetId() == null || datasetService.getById(req.getDatasetId()) == null) { throw new BusinessException(\"parent dataset missing\"); }","typeGuard":"boolean canCreateVersion(Long datasetId) { return datasetId != null && datasetService.getById(datasetId) != null; }","tryCatchPattern":"try { versionService.create(req); } catch (IllegalArgumentException e) { if (e.getMessage().startsWith(\"Dataset not found\")) { createDatasetThenVersion(req); } else { throw e; } }","preventionTips":["Create the parent dataset before creating versions in scripts","Verify ids against the live environment, not copied test values","Use the same DB profile for dataset and version operations"],"tags":["mybatis","resource-not-found","dataset"],"backgroundTag":"record-not-found","analyzedSha":"f82da0b50f35744c13968191be2b1cd2452ef550","analyzedAt":"2026-09-09T15:32:42.421Z","contentChangedAt":"2026-09-09T15:32:42.421Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}