diff --git a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c index 4d8cdd5ab32f85eb38dbb51281c27dc0a0d1d329..da2b17019fe31d5e79bb3d9b6fc1c43a542b4105 100644 --- a/src/plugins/doveadm-sieve/doveadm-sieve-sync.c +++ b/src/plugins/doveadm-sieve/doveadm-sieve-sync.c @@ -561,9 +561,17 @@ sieve_attribute_get_sieve(struct mail_storage *storage, const char *key, return -1; } ret = sieve_storage_open_script(svstorage, scriptname, &script, NULL); - i_assert(ret == 0); - ret = sieve_attribute_retrieve_script(storage, svstorage, script, FALSE, - value_r, &error); + if (ret < 0) { + enum sieve_error error_code; + + error = sieve_storage_get_last_error(svstorage, &error_code); + if (error_code == SIEVE_ERROR_NOT_FOUND) + ret = 0; + } else { + ret = sieve_attribute_retrieve_script(storage, svstorage, + script, FALSE, + value_r, &error); + } if (ret < 0) { mail_storage_set_critical( storage, "Failed to access sieve script '%s': %s",