diff --git a/oak-doc/src/site/markdown/nodestore/documentmk.md b/oak-doc/src/site/markdown/nodestore/documentmk.md
index df6db50da0a..c3a504b63b4 100644
--- a/oak-doc/src/site/markdown/nodestore/documentmk.md
+++ b/oak-doc/src/site/markdown/nodestore/documentmk.md
@@ -773,6 +773,24 @@ the `machine` and `instance` fields. This behaviour is new and was introduced
with Oak 1.10. Previous versions ignore entries that do not match the
environment and would create a new entry.
+Note that while this behavior is usually beneficial, there are circumstances
+under which it may lead to very slow startup times for cluster nodes that try
+to acquire a node ID that has not been shut down gracefully and has been
+inactive for a long time. This is due to synchronous recovery operations that
+are necessary to guarantee the consistency of the cluster (for details see
+[Recovery for a cluster node ID](#recovery-for-a-cluster-node-id)).
+
+To avoid that, the maximum duration of the synchronous recovery may be
+limited using the system property `oak.documentMK.syncRecoveryTimeoutMillis`.
+A positive value will specify this maximum duration in milliseconds, while a
+negative value doesn't limit the recovery time. The default is `-1`.
+If the duration is exceeded, the node will no longer try to reuse the ID
+and pick one that doesn't need recovery.
+
+Note that this feature has been specifically designed for unusual Oak
+deployments (requiring significantly longer lease timeouts) and is not
+recommended for general use.
+
### Update lease for a cluster node ID
Each running cluster node updates the `leaseEnd` time of the cluster node ID
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
index b3b44582db7..4dee0c44671 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryAgent.java
@@ -81,6 +81,8 @@ public class LastRevRecoveryAgent {
private final Consumer afterRecovery;
+ //OAK-11284: optionally limit the maximum duration of a synchronous recovery operation that may occur when
+ //inactive node IDs are reused.
private static final long SYNC_RECOVERY_TIMEOUT_MILLIS =
SystemPropertySupplier
.create("oak.documentMK.syncRecoveryTimeoutMillis", -1)