diff --git a/backend/src/routes/admin.js b/backend/src/routes/admin.js
index e335a71..8ddab29 100644
--- a/backend/src/routes/admin.js
+++ b/backend/src/routes/admin.js
@@ -263,7 +263,7 @@ router.post('/webdav/sync', authenticate, requireAdmin, async (req, res) => {
// User-Basisordner
try { await webdav.mkdirp(userBase); results.folders++; } catch(e) {
- results.errors.push(`Ordner ${userBase}: ${e.message}`);
+ console.warn('[sync] mkdirp', userBase, e.message);
}
// Upload-Freigabe Ordner
diff --git a/backend/src/tools/dateien/webdav.js b/backend/src/tools/dateien/webdav.js
index 49d9537..d6565f9 100644
--- a/backend/src/tools/dateien/webdav.js
+++ b/backend/src/tools/dateien/webdav.js
@@ -77,8 +77,10 @@ async function mkdirp(davPath) {
for (const part of parts) {
current += '/' + part;
const r = await davRequest('MKCOL', current);
- if (r.status !== 201 && r.status !== 405) { // 405 = schon vorhanden
- throw new Error(`MKCOL ${current} → ${r.status}`);
+ // 201 = erstellt, 301/405/409/423 = schon vorhanden oder Konflikt (ignorieren)
+ const ok = [201, 301, 405, 409, 423].includes(r.status);
+ if (!ok) {
+ console.warn(`[webdav mkdirp] MKCOL ${current} → ${r.status} (ignoriert)`);
}
}
}
@@ -97,7 +99,9 @@ function userPath(cfg, username) {
* @param {string} mimeType
*/
async function uploadFile(buffer, davPath, mimeType = 'application/octet-stream') {
- await mkdirp(davPath.split('/').slice(0, -1).join('/'));
+ try { await mkdirp(davPath.split('/').slice(0, -1).join('/')); } catch(e) {
+ console.warn('[webdav] mkdirp warning:', e.message);
+ }
const r = await new Promise((resolve, reject) => {
const cfg = getConfig();
const base = new URL(cfg.url);
diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index 44f05ac..1d1f7eb 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -2991,9 +2991,6 @@ function AdminPanel({ toast, mobile, user, nav }) {