diff --git a/studio/frontend/src/features/studio/sections/dataset-section.tsx b/studio/frontend/src/features/studio/sections/dataset-section.tsx
index 7ff9e675ab..4f20133b5c 100644
--- a/studio/frontend/src/features/studio/sections/dataset-section.tsx
+++ b/studio/frontend/src/features/studio/sections/dataset-section.tsx
@@ -89,6 +89,13 @@ function formatUpdatedDate(timestamp: number | null): string {
return new Date(timestamp * 1000).toLocaleDateString();
}
+function normalizeSliceInput(value: string): string | null {
+ const trimmed = value.trim();
+ if (!trimmed) return null;
+ if (!/^\d+$/.test(trimmed)) return null;
+ return trimmed;
+}
+
export function DatasetSection() {
const {
dataset,
@@ -783,11 +790,14 @@ export function DatasetSection() {
- setDatasetSliceStart(e.target.value || null)
+ setDatasetSliceStart(normalizeSliceInput(e.target.value))
}
/>
@@ -815,11 +825,14 @@ export function DatasetSection() {
- setDatasetSliceEnd(e.target.value || null)
+ setDatasetSliceEnd(normalizeSliceInput(e.target.value))
}
/>
diff --git a/studio/frontend/src/features/training/api/mappers.ts b/studio/frontend/src/features/training/api/mappers.ts
index fed17a538c..53869fdd59 100644
--- a/studio/frontend/src/features/training/api/mappers.ts
+++ b/studio/frontend/src/features/training/api/mappers.ts
@@ -12,7 +12,7 @@ function parseSliceValue(value: string | null): number | null {
const trimmed = value.trim();
if (!trimmed) return null;
const num = Number(trimmed);
- if (!Number.isFinite(num) || !Number.isInteger(num)) return null;
+ if (!Number.isFinite(num) || !Number.isInteger(num) || num < 0) return null;
return num;
}