{"record":{"id":"b28d799c659c479d","repo":"alibaba/spring-ai-alibaba","slug":"error-b28d79","errorCode":null,"errorMessage":"数据集版本不存在: ","messagePattern":"数据集版本不存在: ","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/DatasetItemServiceImpl.java","lineNumber":79,"sourceCode":"\n        List<DatasetItem> datasetItemList = request.getDataContent().stream().map(\n                dataContent -> {\n                    DatasetItemDO datasetItemDO = DatasetItemDO.builder()\n                            .datasetId(request.getDatasetId())\n                            .dataContent(dataContent)\n                            .columnsConfig(JSONObject.toJSONString(request.getColumnsConfig()))\n                            .build();\n                    datasetItemMapper.insert(datasetItemDO);\n                    itemIds.add(datasetItemDO.getId());\n                    return DatasetItem.fromDO(datasetItemDO);\n                }\n        ).toList();\n\n        if (!itemIds.isEmpty()) {\n            // 更新数据集版本中的数据项列表\n            DatasetVersionDO datasetVersionDO = datasetVersionMapper.selectById(request.getDatasetVersionId());\n            if (datasetVersionDO == null) {\n                throw new RuntimeException(\"数据集版本不存在: \" + request.getDatasetVersionId());\n            }\n\n            List<Long> datasetItems = CommonUtils.parseItemIds(datasetVersionDO.getDatasetItems());\n            datasetItems.addAll(itemIds);\n\n            datasetVersionMapper.updateDatasetItems(datasetVersionDO.getId(),\n                    datasetItems.toString(),datasetItems.size()\n            );\n\n        }\n\n        return  datasetItemList;\n\n    }\n\n    @Override\n    public PageResult<DatasetItem> list(DatasetItemListRequest request) {\n        log.info(\"根据数据集版本ID查询数据项列表: datasetVersionId={}, pageNumber={}, pageSize={}\", request.getDatasetVersionId(), request.getPageNumber(), request.getPageSize());","sourceCodeStart":61,"sourceCodeEnd":97,"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/DatasetItemServiceImpl.java#L61-L97","documentation":"DatasetItemServiceImpl.createFromTrace pushes trace-derived items into a dataset version; it loads the target DatasetVersionDO via datasetVersionMapper.selectById and throws this RuntimeException when the row is absent. The update of dataset items cannot proceed without an existing version.","triggerScenarios":"Calling createFromTrace with request.getDatasetVersionId() referencing a dataset version id that does not exist in the dataset_version table (already deleted, never created, or wrong id/type passed).","commonSituations":"A dataset version deleted (or cascade-deleted with its dataset) while traces still reference it; copying a request across environments (dev id used against prod DB); front-end sending a stale id after version regeneration; id passed as string vs numeric mismatch in the mapper.","solutions":["Verify the dataset version id exists: run SELECT * FROM dataset_version WHERE id = <id> (or check via admin UI)","Create the dataset version first (or pick an existing version) before calling createFromTrace","Fix the caller to pass the correct datasetVersionId from the current dataset's version list","If versions are auto-cleaned, add existence handling in the caller to skip or recreate the version instead of failing"],"exampleFix":"// before\ndatasetItemService.createFromTrace(req.withDatasetVersionId(999L)); // version deleted\n// after\nLong versionId = datasetVersionService.createVersion(datasetId);\ndatasetItemService.createFromTrace(req.withDatasetVersionId(versionId));","handlingStrategy":"try-catch","validationCode":"// Java: confirm the dataset version exists before importing trace items\nif (datasetVersionMapper.selectById(request.getDatasetVersionId()) == null) {\n    throw new IllegalStateException(\"Dataset version not found: \" + request.getDatasetVersionId());\n}","typeGuard":"boolean versionExists(DatasetVersionDO v) { return v != null; }","tryCatchPattern":"try {\n    datasetItemService.createFromTrace(request);\n} catch (RuntimeException e) {\n    if (e.getMessage().startsWith(\"数据集版本不存在\")) {\n        // create the version or refresh the id, then retry\n    }\n}","preventionTips":["Fetch datasetVersionId from the live version list of the dataset right before the call, never hardcode","Watch for cascade deletes: when a dataset is removed, update or invalidate references in traces","In multi-environment setups, never share record ids across dev/staging/prod databases"],"tags":["not-found","dataset","database","lookup"],"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-14T11:17:12.474Z"}