{"record":{"id":"e1df18cde0687c7c","repo":"alibaba/spring-ai-alibaba","slug":"failed-to-create-dataset-version","errorCode":null,"errorMessage":"Failed to create dataset version","messagePattern":"Failed to create dataset version","errorType":"exception","errorClass":"RuntimeException","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":75,"sourceCode":"        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())\n                .status(request.getStatus() != null ? request.getStatus() : \"DRAFT\")\n                .experiments(\"[]\")\n                .datasetItems(request.getDatasetItems() != null ? request.getDatasetItems().toString() : \"[]\")\n                .build();\n\n        // Insert into database\n        int result = datasetVersionMapper.insert(datasetVersionDO);\n        if (result <= 0) {\n            throw new RuntimeException(\"Failed to create dataset version\");\n        }\n\n        log.info(\"Dataset version created successfully: {}\", datasetVersionDO);\n        return DatasetVersion.fromDO(datasetVersionDO);\n    }\n\n    @Override\n    public PageResult<DatasetVersion> list(DatasetVersionListRequest request) {\n        log.info(\"Querying dataset version list: {}\", request);\n\n        // Extract search parameters from request\n        Long datasetId = request.getDatasetId();\n\n        // Calculate offset\n        long offset = (request.getPageNumber() - 1L) * request.getPageSize();\n\n        // Query data\n        List<DatasetVersionDO> versionList = datasetVersionMapper.selectList(","sourceCodeStart":57,"sourceCodeEnd":93,"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#L57-L93","documentation":"Thrown by DatasetVersionServiceImpl.create() when datasetVersionMapper.insert() returns 0 or fewer affected rows, meaning the version row was not persisted. This is an unexpected database-level failure discovered after the insert executes.","triggerScenarios":"Insert blocked by a constraint or trigger; logical-delete/ID-generation misconfiguration; table missing or schema drift between DO and table; DB connection failing mid-transaction (transaction then rolls back).","commonSituations":"Schema migrations not applied so the dataset_version table lacks a column; unique key collision; DB user lacks INSERT privilege; connection pool exhaustion.","solutions":["Check application/MyBatis SQL logs for the failing INSERT and underlying SQL exception","Apply pending schema migrations for dataset_version","Verify the DB user has INSERT privileges on the table","Retry the operation; if transient connection issues, add retry with backoff"],"exampleFix":"// before\ntry { datasetVersionService.create(req); } catch (RuntimeException e) { /* swallowed */ }\n// after\ntry {\n    datasetVersionService.create(req);\n} catch (RuntimeException e) {\n    log.error(\"dataset version insert failed\", e); // inspect root SQL exception\n    throw e;\n}","handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { versionService.create(req); } catch (RuntimeException e) { if (e.getMessage().equals(\"Failed to create dataset version\")) { if (!retry(idempotencyKey)) { alertOps(e); } } else { throw e; } }","preventionTips":["Keep schema migrations for dataset_version in sync with the DO","Check DB insert privileges and constraint definitions","Use an idempotency key so retries do not duplicate versions","Watch insert metrics/logs for zero-row inserts"],"tags":["mybatis","insert","database"],"backgroundTag":"database-write-failed","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"}