Your example pointed me to a solution, excellent !

In my case I only needed one pass, I had to supply both imapc_list_prefix AND imapc_prefix AND the "namespace/inbox/prefix=" options.
In case anyone runs into this in the future, here's a decent place to start for debugging:

/usr/bin/doveadm -Dv -o imapc_list_prefix=INBOX -o imapc_prefix=INBOX.  -o "namespace/inbox/prefix=" -o mail_fsync=never   -o dsync_commit_msgs_interval=100 -o imapc_features=rfc822.size,fetch-headers -o dsync_features=empty-header-workaround  -o imapc_port=143 -o imapc_host=127.0.0.1 -o imapc_password=yayforpasswords -o imapc_user=wah@hellodemo.ppl -o imapc_rawlog_dir=/tmp/raww -o mail_prefetch_count=20  sync  -1Ru saywhatnow@letest.tld imapc:


Thanks again for digging through the old emails where the magic incantations were, I really appreciate it!
Darren




---- On Wed, 18 May 2022 05:19:53 -0500 Sami Ketola <sami@ketola.io> wrote ----


So adding "-o imapc_list_prefix=INBOX" to the doveadm command line should fix that, I would think ?



So is the remote INBOX really 'INBOX' or 'INBOX.INBOX'? Command line arguments depend on which one it is.

I managed to find some old archived emails with some tips on how it was solved back then. It was done with something like this:

normal doveadm command:

'LOG_STDERR_TIMESTAMP="%b %d %H:%M:%S.%{usecs} " ' + '/usr/bin/doveadm' + dsync_debug + \
" -o mail_prefetch_count=10 " + \
                        " -o imapc_features=fetch-headers " + \
                        " -o imapc_host=" + legacy_host + \
                        " -o imapc_port=" + legacy_port + \
                        " -o imapc_list_prefix=" + imapc_prefix + \
                        " -o imapc_prefix=" + imapc_prefix + \
                        " -o imapc_user=" + self.legacy_user + \
                        " -o imapc_master_user=" + self.legacy_user + \
                        " -o imapc_password=" + imapc_master_password + \
                        " -o mail_fsync=never " + \
                        " backup -u " + self.uid + \
                        " -R imapc: >> " + dsync_err_log_location + self.uid + ".dsync_err.log 2>&1"

If I remember correctly imapc_prefix was 'INBOX/' since this customer had INBOX/INBOX setup with / as separator.

and if user had INBOX/INBOX detected this command was run on top of that to migrate INBOX:

'LOG_STDERR_TIMESTAMP="%b %d %H:%M:%S.%{usecs} " ' + '/usr/bin/doveadm' + dsync_debug + \
                        " -o namespace/inbox/prefix= " + \
                        " -o mail_prefetch_count=10 " + \
                        " -o imapc_features=fetch-headers " + \
                        " -o imapc_host=" + legacy_host + \
                        " -o imapc_port=" + legacy_port + \
                        " -o imapc_user=" + self.legacy_user + \
                        " -o imapc_master_user=" + self.legacy_user + \
                        " -o imapc_password=" + imapc_master_password + \
                        " -o mail_fsync=never " + \
                        " backup -u " + self.uid + \
                        " -m INBOX/INBOX " + \
                        " -R imapc: >> " + dsync_err_log_location + self.uid + ".dsync_err.log 2>&1"


HTH,

Sami