alibaba/spring-ai-alibaba · error · RuntimeException
Failed to create dataset version
Error message
Failed to create dataset version
What it means
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.
Source
Thrown at spring-ai-alibaba-admin/spring-ai-alibaba-admin-server-start/src/main/java/com/alibaba/cloud/ai/studio/admin/service/impl/DatasetVersionServiceImpl.java:75
String versionNumber = VersionUtils.generateVersionNumber(currentVersion);
// Build entity
DatasetVersionDO datasetVersionDO = DatasetVersionDO.builder()
.datasetId(request.getDatasetId())
.version(versionNumber)
.description(request.getDescription())
.dataCount(request.getDatasetItems().size())
.createTime(LocalDateTime.now())
.status(request.getStatus() != null ? request.getStatus() : "DRAFT")
.experiments("[]")
.datasetItems(request.getDatasetItems() != null ? request.getDatasetItems().toString() : "[]")
.build();
// Insert into database
int result = datasetVersionMapper.insert(datasetVersionDO);
if (result <= 0) {
throw new RuntimeException("Failed to create dataset version");
}
log.info("Dataset version created successfully: {}", datasetVersionDO);
return DatasetVersion.fromDO(datasetVersionDO);
}
@Override
public PageResult<DatasetVersion> list(DatasetVersionListRequest request) {
log.info("Querying dataset version list: {}", request);
// Extract search parameters from request
Long datasetId = request.getDatasetId();
// Calculate offset
long offset = (request.getPageNumber() - 1L) * request.getPageSize();
// Query data
List<DatasetVersionDO> versionList = datasetVersionMapper.selectList(View on GitHub (pinned to f82da0b50f)
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
Example fix
// before
try { datasetVersionService.create(req); } catch (RuntimeException e) { /* swallowed */ }
// after
try {
datasetVersionService.create(req);
} catch (RuntimeException e) {
log.error("dataset version insert failed", e); // inspect root SQL exception
throw e;
} Defensive patterns
Strategy: retry
Try / catch
try { versionService.create(req); } catch (RuntimeException e) { if (e.getMessage().equals("Failed to create dataset version")) { if (!retry(idempotencyKey)) { alertOps(e); } } else { throw e; } } Prevention
- 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
When it happens
Trigger: 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).
Common situations: Schema migrations not applied so the dataset_version table lacks a column; unique key collision; DB user lacks INSERT privilege; connection pool exhaustion.
Related errors
AI-assisted analysis of alibaba/spring-ai-alibaba@f82da0b50f (2026-09-09).
Data as JSON: /api/errors/e1df18cde0687c7c.
Report an issue: GitHub.