Zend certified PHP/Magento developer

Cyrus Sieve runtime error claiming Mailbox does not exist

I recently installed CentOS 8 after backing up my CentOS 7 system and seemed to have botched something when trying to get cyrus-imapd back up and running. Mail is delivered correctly but the sieve mail filter is complaining that the various mailboxes do not exist and therefore does not file the mail correctly. For example, if I send a message on the local network:

[root@buttercup quota]# mail jim@home.lan
Subject: Test Message
Test
.
EOT

The mail log will show:

Dec  6 12:51:39 buttercup postfix/pickup[27670]: 07FBA216825B: uid=0 from=
Dec  6 12:51:39 buttercup postfix/cleanup[27810]: 07FBA216825B: message-id=<20191206175139.07FBA216825B@mail.home.lan>
Dec  6 12:51:39 buttercup postfix/qmgr[27671]: 07FBA216825B: from=, size=419, nrcpt=1 (queue active)
Dec  6 12:51:39 buttercup cyrus/lmtp[27814]: sieve runtime error for jim id <20191206175139.07FBA216825B@mail.home.lan>: Fileinto (user/jim/System Messages): Mailbox does not exist
Dec  6 12:51:39 buttercup cyrus/lmtp[27814]: LOSTQUOTA: unable to record change of 697 bytes and 1 messages in quota user.jim: Quota root does not exist
Dec  6 12:51:39 buttercup cyrus/lmtp[27814]: Delivered: <20191206175139.07FBA216825B@mail.home.lan> to mailbox: user.jim
Dec  6 12:51:39 buttercup cyrus/lmtp[27814]: USAGE jim user: 0.012321 sys: 0.005097
Dec  6 12:51:39 buttercup postfix/lmtp[27813]: 07FBA216825B: to=, relay=localhost[127.0.0.1]:24, delay=0.27, delays=0.03/0.01/0.03/0.2, dsn=2.1.5, status=sent (250 2.1.5 Ok SESSIONID=)
Dec  6 12:51:39 buttercup postfix/qmgr[27671]: 07FBA216825B: removed

The mailbox does exist, as seen with cyradm:

buttercup.home.lan> lm user/jim/System Messages
user/jim/System Messages (HasNoChildren)

This was all working fine before the CentOS 8 install. The relevant (I think) imapd.conf entries:

defaultpartition: default
partition-default: /data/spool/imap
sievedir: /var/lib/imap/sieve
virtdomains: off
unixhierarchysep: yes

The spool directory looks like this:

[root@buttercup jim]# ls -l /data/spool/imap/j/user/jim
-rw-------. 1 cyrus mail    336 Nov 30 17:57  cyrus.annotations
-rw-------. 1 cyrus mail 373712 Dec  6 13:01  cyrus.cache
-rw-------. 1 cyrus mail    189 Apr 19  2013  cyrus.header
-rw-------. 1 cyrus mail  23424 Dec  6 13:01  cyrus.index
-rw-------. 1 cyrus mail    112 Nov 26 05:31  cyrus.squat
drwx------. 2 cyrus mail  20480 Nov 30 17:57 'System Messages'

I’ve exhausted my troubleshooting skills on this so before I go delving into the cyrus/sieve source code to try and determine what’s happening, I’m hoping someone here will recognize the problem or see a simple mistake I’ve made.