diff --git a/app/assets/javascripts/ml/model_registry/services/upload_model.js b/app/assets/javascripts/ml/model_registry/services/upload_model.js
index 0c1af3ee526505c0eb2ceb3aa0bb94892422898e..7d70c92c0212faf79342ef1815768b372161a387 100644
--- a/app/assets/javascripts/ml/model_registry/services/upload_model.js
+++ b/app/assets/javascripts/ml/model_registry/services/upload_model.js
@@ -14,6 +14,11 @@ export const uploadModel = ({
   if (!file) {
     return Promise.resolve();
   }
+
+  if (subfolder && subfolder.includes(' ')) {
+    return Promise.reject(new Error(s__('Mlmodelregistry|Subfolder cannot contain spaces')));
+  }
+
   if (!maxAllowedFileSize) {
     return Promise.resolve(s__('Mlmodelregistry|Provide the max allowed file size'));
   }
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 0aecf29d8b9d291660bba28c00adbd18a9db590c..bc758c2a97aa524475e3dd8a099fcd5678bc4ad0 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -33627,6 +33627,9 @@ msgstr[1] ""
 msgid "Mlmodelregistry|Provide the max allowed file size"
 msgstr ""
 
+msgid "Mlmodelregistry|Subfolder cannot contain spaces"
+msgstr ""
+
 msgid "Mock an external CI integration."
 msgstr ""
 
diff --git a/spec/frontend/ml/model_registry/services/upload_model_spec.js b/spec/frontend/ml/model_registry/services/upload_model_spec.js
index f8388c0d2da534fc95aa0f6c7bf217321d6a6f3d..149e9d2d6157524dfbef1d5b9e62d9df05e8311b 100644
--- a/spec/frontend/ml/model_registry/services/upload_model_spec.js
+++ b/spec/frontend/ml/model_registry/services/upload_model_spec.js
@@ -43,6 +43,14 @@ describe('uploadModel', () => {
     });
   });
 
+  it('should not upload when the subfolder contains spaces', async () => {
+    const subfolder = 'sub folder';
+
+    await expect(uploadModel({ importPath, file, subfolder, maxAllowedFileSize })).rejects.toThrow(
+      new Error('Subfolder cannot contain spaces'),
+    );
+  });
+
   it('should not make a request if no file is provided', async () => {
     await uploadModel({ importPath });