diff --git a/api-openbis-javascript/src/v3/openbis.js b/api-openbis-javascript/src/v3/openbis.js
index cef01618ba03179a2e380bd8eb5bc1db890e3d54..4581c35765c2891697a411832f48a9b2eb60bc7d 100644
--- a/api-openbis-javascript/src/v3/openbis.js
+++ b/api-openbis-javascript/src/v3/openbis.js
@@ -355,45 +355,36 @@ define([ 'jquery', 'util/Json', 'as/dto/datastore/search/DataStoreSearchCriteria
 			return new Promise(function(resolve, reject) {
 				thisFacade._getDataStores().done(function(dataStores) {
 					uploadBlob(dataStores[0], parentId, facade._private.sessionToken, file, 0, 1048576)
-						.done(function() {
-							resolve();
-						}).fail(function(error) {
-						reject(error);
-					});
+						.then(function (value) {
+							resolve(value);
+						})
+						.catch(function (reason) {
+							reject(reason);
+						});
 				}).fail(function(error) {
 					reject(error);
 				});
 			});
 		}
 
-		function uploadBlob(dataStore, parentId, sessionID, file, startByte, chunkSize) {
+		async function uploadBlob(dataStore, parentId, sessionID, file, startByte, chunkSize) {
 			var fileSize = file.size;
-			var promises = [];
 			for (var byte = startByte; byte < fileSize; byte += chunkSize) {
-				const dfd = jquery.Deferred();
-				fetch(createUrlWithParameters(dataStore, "session_workspace_file_upload",
-						"?sessionID=" + sessionID +
-						"&filename=" + encodeURIComponent(parentId + "/" +
-								(file.webkitRelativePath ? file.webkitRelativePath : file.name)) +
-						"&id=1&startByte=" + byte +
-						"&endByte=" + (byte + chunkSize) +
-						"&size=" + fileSize +
-						"&emptyFolder=false"), {
+				await fetch(createUrlWithParameters(dataStore, "session_workspace_file_upload",
+					"?sessionID=" + sessionID +
+					"&filename=" + encodeURIComponent(parentId + "/" +
+						(file.webkitRelativePath ? file.webkitRelativePath : file.name)) +
+					"&id=1&startByte=" + byte +
+					"&endByte=" + (byte + chunkSize) +
+					"&size=" + fileSize +
+					"&emptyFolder=false"), {
 					method: "POST",
 					headers: {
 						"Content-Type": "multipart/form-data"
 					},
 					body: makeChunk(file, byte, Math.min(byte + chunkSize, fileSize))
-				}).then(function () {
-					dfd.resolve();
-				}).catch(function (error) {
-					console.error("Error:", error);
-					dfd.reject(error);
 				});
-				promises.push(dfd);
 			}
-
-			return jquery.when.apply(jquery, promises);
 		}
 
 		function makeChunk(file, startByte, endByte) {