diff --git a/gitlab/before_docs.sh b/gitlab/before_docs.sh
index 7fe4b0b7a76cf5dc45cc06ec551b2f42a3bcedb1..45941af518ae5425f20fc36c25d55027e89a98f6 100755
--- a/gitlab/before_docs.sh
+++ b/gitlab/before_docs.sh
@@ -18,9 +18,9 @@ fi
 
 # prefix differs between private & public repos
 if [[ "${VISIBILITY}" == "public" ]]; then
-  DOCS_SERVER_PREFIX="public-upload/$CI_PROJECT_PATH/docs/"
+  DOCS_SERVER_PREFIX="public-upload/$CI_PROJECT_PATH/docs"
 else
-  DOCS_SERVER_PREFIX="private-upload/$CI_PROJECT_PATH/docs/"
+  DOCS_SERVER_PREFIX="private-upload/$CI_PROJECT_PATH/docs"
 fi
 
 # define possible upload paths
diff --git a/gitlab/functions.sh b/gitlab/functions.sh
index 608d3d85a333981cfd998285d88caa7452acc9c3..a05dff2516c342ca6c425a6bf7284e9726c17c5d 100644
--- a/gitlab/functions.sh
+++ b/gitlab/functions.sh
@@ -204,9 +204,17 @@ dav_mkdir() {
 # Deletes a file/folder from our intranet location via curl
 # $1: Path to the file/folder to delete (e.g. dist/myfile.whl)
 dav_delete() {
-  log_info "curl: DELETE ${1}..."
+  log_info "curl: EXISTS ${1}?"
+
+  # checks if the directory exists before trying to remove it (use --head)
+  local code=$(curl --location --silent --fail --write-out "%{http_code}" --head --user "${DOCUSER}:${DOCPASS}" "$1")
+  if [[ ${code} == *404 ]]; then
+    log_info "Directory $1 does not exist. Skipping deletion"
+    return 0
+  fi
 
-  local code=$(curl --location --silent --fail --write-out "%{http_code}" --user "${DOCUSER}:${DOCPASS}" -X DELETE "$1")
+  log_info "curl: DELETE ${1}..."
+  code=$(curl --location --silent --fail --write-out "%{http_code}" --user "${DOCUSER}:${DOCPASS}" -X DELETE "$1")
 
   if [[ ${code} == *204 || ${code} == *201 ]]; then
     log_info "Successfully deleted ${1} with curl"