diff --git a/doc/src/sgml/monitoring.sgml b/doc/src/sgml/monitoring.sgml
index 62dadf3e86c..0d038de1a23 100644
--- a/doc/src/sgml/monitoring.sgml
+++ b/doc/src/sgml/monitoring.sgml
@@ -7601,7 +7601,19 @@ FROM pg_stat_get_backend_idset() AS backendid;
initializing
The command is preparing to begin scanning the heap. This phase is
- expected to be very brief.
+ expected to be very brief, except for
+ REPACK CONCURRENTLY, where it also covers enabling
+ logical decoding and then initializing it. Enabling has nothing to do
+ if is already
+ logical; otherwise it waits for all processes to
+ acknowledge that they started writing the additional WAL information
+ that logical decoding requires. Initializing then waits for the
+ transactions that have been assigned a transaction ID to end, including
+ ones that started while this wait was in progress, so this phase can
+ last longer than the longest transaction running when the command
+ started. This includes any other
+ REPACK CONCURRENTLY, which holds a transaction ID
+ until it finishes.
@@ -7633,7 +7645,10 @@ FROM pg_stat_get_backend_idset() AS backendid;
REPACK CONCURRENTLY is currently processing the DML
commands that other transactions executed during any of the preceding
- phases.
+ phases. This phase also covers waiting for the ACCESS
+ EXCLUSIVE lock needed to swap the files, so a command blocked
+ by a conflicting lock stays in this phase.
+ This phase is skipped when not in concurrent mode.