diff --git a/invenio_utilities_tuw/cli/drafts.py b/invenio_utilities_tuw/cli/drafts.py
index df940fc0e5a80930758a153506b21ef55a515c0f..393b9d8c19d9e224acfab6d0e5bb1545bf405e90 100644
--- a/invenio_utilities_tuw/cli/drafts.py
+++ b/invenio_utilities_tuw/cli/drafts.py
@@ -447,6 +447,20 @@ def verify_files(pid, pid_type):
         sys.exit(1)
 
 
+@files.command("fix-state")
+@option_pid_value
+@option_pid_type
+@with_appcontext
+def fix_state(pid, pid_type):
+    """Fix the draft's file manager state and lock the bucket."""
+    recid = convert_to_recid(pid, pid_type)
+    draft = service.read_draft(id_=recid, identity=system_identity)._record
+    draft.files.lock()
+    draft.files.enabled = bool(draft.files.entries)
+    draft.commit()
+    db.session.commit()
+
+
 @drafts.command("list-stale")
 @click.option(
     "--days",
diff --git a/invenio_utilities_tuw/cli/records.py b/invenio_utilities_tuw/cli/records.py
index 69978b3a30722331a3f5ffbb8f89e16063be55db..143f56e94d2e15eab12fc0be5638492e530e5158 100644
--- a/invenio_utilities_tuw/cli/records.py
+++ b/invenio_utilities_tuw/cli/records.py
@@ -13,6 +13,7 @@ import sys
 
 import click
 from flask.cli import with_appcontext
+from invenio_access.permissions import system_identity
 from invenio_db import db
 from invenio_rdm_records.proxies import current_rdm_records_service as service
 from invenio_records_resources.services.errors import PermissionDeniedError
@@ -229,6 +230,20 @@ def verify_files(pid, pid_type, user):
         sys.exit(1)
 
 
+@files.command("fix-state")
+@option_pid_value
+@option_pid_type
+@with_appcontext
+def fix_state(pid, pid_type):
+    """Fix the record's file manager state and lock the bucket."""
+    recid = convert_to_recid(pid, pid_type)
+    record = service.read(id_=recid, identity=system_identity)._record
+    record.files.lock()
+    record.files.enabled = bool(record.files.entries)
+    record.commit()
+    db.session.commit()
+
+
 @records.command("reindex")
 @option_pid_values
 @option_pid_type