diff --git a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java
index 68a4b083ca72926916c7b8bd88c57aa9ad465a9c..f2b7c4bb02ae84fea5d6817cc3de50f055f60de5 100644
--- a/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java
+++ b/src/main/java/org/olat/core/commons/services/vfs/manager/VFSRepositoryServiceImpl.java
@@ -1077,6 +1077,11 @@ public class VFSRepositoryServiceImpl implements VFSRepositoryService, GenericEv
 				if(directory.isHidden() || VFSRepositoryModule.canMeta(directory) != VFSConstants.YES) {
 					return FileVisitResult.SKIP_SUBTREE;
 				}
+				if(dir.getNameCount() > 50) {
+					log.error("More than 50 directories deep. Stop migrating metadata: {}", directory);
+					return FileVisitResult.SKIP_SUBTREE;
+				}
+				
 				VFSMetadata parent = parentLine.peekLast();
 				VFSMetadata metadata = migrateMetadata(dir.toFile(), parent);
 				parentLine.add(metadata);
@@ -1084,6 +1089,7 @@ public class VFSRepositoryServiceImpl implements VFSRepositoryService, GenericEv
 					dbInstance.commitAndCloseSession();
 					return FileVisitResult.SKIP_SUBTREE;
 				}
+				dbInstance.commit();
 				return FileVisitResult.CONTINUE;
 			}
 
diff --git a/src/main/resources/database/mysql/alter_13_2_x_to_13_3_0.sql b/src/main/resources/database/mysql/alter_13_2_x_to_13_3_0.sql
index a73f66da947240e185428b26cf21545a2fde95ff..981cacfa985524fc93a091e9b44b30166ef8dee3 100644
--- a/src/main/resources/database/mysql/alter_13_2_x_to_13_3_0.sql
+++ b/src/main/resources/database/mysql/alter_13_2_x_to_13_3_0.sql
@@ -22,7 +22,7 @@ create table o_vfs_metadata (
    f_city varchar(256),
    f_pages varchar(16),
    f_language varchar(16),
-   f_url text(4000),
+   f_url text(2000),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
@@ -91,7 +91,7 @@ create table o_vfs_revision (
    f_city varchar(256),
    f_pages varchar(16),
    f_language varchar(16),
-   f_url text(1024),
+   f_url text(2048),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
diff --git a/src/main/resources/database/mysql/setupDatabase.sql b/src/main/resources/database/mysql/setupDatabase.sql
index 17a0aaadf33019aefebd4943088be9a69bd0163a..5b8049b64ff8a2b9c7c3acd3de368db800b8cd51 100644
--- a/src/main/resources/database/mysql/setupDatabase.sql
+++ b/src/main/resources/database/mysql/setupDatabase.sql
@@ -1732,7 +1732,7 @@ create table o_vfs_metadata (
    f_city varchar(256),
    f_pages varchar(16),
    f_language varchar(16),
-   f_url text(1024),
+   f_url text(2000),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
@@ -1783,7 +1783,7 @@ create table o_vfs_revision (
    f_city varchar(256),
    f_pages varchar(16),
    f_language varchar(16),
-   f_url text(1024),
+   f_url text(2048),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
diff --git a/src/main/resources/database/oracle/alter_13_2_x_to_13_3_0.sql b/src/main/resources/database/oracle/alter_13_2_x_to_13_3_0.sql
index 9ad8fef8984c3115b7d09d18088b695635e47a72..143a62b3c33cda64e62c98fec80a5c54bc9b4014 100644
--- a/src/main/resources/database/oracle/alter_13_2_x_to_13_3_0.sql
+++ b/src/main/resources/database/oracle/alter_13_2_x_to_13_3_0.sql
@@ -21,7 +21,7 @@ create table o_vfs_metadata (
    f_city varchar(256),
    f_pages varchar(2000),
    f_language varchar(16),
-   f_url varchar(1024),
+   f_url varchar(2000),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
@@ -91,7 +91,7 @@ create table o_vfs_revision (
    f_city varchar(256),
    f_pages varchar(2000),
    f_language varchar(16),
-   f_url varchar(1024),
+   f_url varchar(2048),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
diff --git a/src/main/resources/database/oracle/setupDatabase.sql b/src/main/resources/database/oracle/setupDatabase.sql
index 39822040f87dafcd8f432cf5946dbd17ab3830d5..b5ecbd9f754922eb3600c7fd74bf6e12fc575f70 100644
--- a/src/main/resources/database/oracle/setupDatabase.sql
+++ b/src/main/resources/database/oracle/setupDatabase.sql
@@ -1660,7 +1660,7 @@ create table o_vfs_metadata (
    f_city varchar(256),
    f_pages varchar(2000),
    f_language varchar(16),
-   f_url varchar(1024),
+   f_url varchar(2000),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
@@ -1709,7 +1709,7 @@ create table o_vfs_revision (
    f_city varchar(256),
    f_pages varchar(2000),
    f_language varchar(16),
-   f_url varchar(1024),
+   f_url varchar(2048),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
diff --git a/src/main/resources/database/postgresql/alter_13_2_x_to_13_3_0.sql b/src/main/resources/database/postgresql/alter_13_2_x_to_13_3_0.sql
index d1f2eaf6f38682d50a79b250e32c00b364e7ec4e..9af68940ef9f69d573a38ec95b53f64af07e1f76 100644
--- a/src/main/resources/database/postgresql/alter_13_2_x_to_13_3_0.sql
+++ b/src/main/resources/database/postgresql/alter_13_2_x_to_13_3_0.sql
@@ -22,7 +22,7 @@ create table o_vfs_metadata (
    f_city varchar(256),
    f_pages varchar(2000),
    f_language varchar(16),
-   f_url varchar(1024),
+   f_url varchar(2000),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
@@ -91,7 +91,7 @@ create table o_vfs_revision (
    f_city varchar(256),
    f_pages varchar(2000),
    f_language varchar(16),
-   f_url varchar(1024),
+   f_url varchar(2048),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
diff --git a/src/main/resources/database/postgresql/setupDatabase.sql b/src/main/resources/database/postgresql/setupDatabase.sql
index dff4ee28b113278c76c81a97957bec00e6109e68..3aa82040360ee70a94eb272951b8227ad3d49d01 100644
--- a/src/main/resources/database/postgresql/setupDatabase.sql
+++ b/src/main/resources/database/postgresql/setupDatabase.sql
@@ -1625,7 +1625,7 @@ create table o_vfs_metadata (
    f_city varchar(256),
    f_pages varchar(2000),
    f_language varchar(16),
-   f_url varchar(1024),
+   f_url varchar(2000),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),
@@ -1676,7 +1676,7 @@ create table o_vfs_revision (
    f_city varchar(256),
    f_pages varchar(2000),
    f_language varchar(16),
-   f_url varchar(1024),
+   f_url varchar(2048),
    f_pub_month varchar(16),
    f_pub_year varchar(16),
    f_license_type_name varchar(256),