diff --git a/src/lib-sieve/sieve-storage.c b/src/lib-sieve/sieve-storage.c index 90a36541d404c19445248599b587134670e12610..8b907bb4d102dcd72b077318acf19c9ede86af3e 100644 --- a/src/lib-sieve/sieve-storage.c +++ b/src/lib-sieve/sieve-storage.c @@ -1004,6 +1004,12 @@ sieve_storage_active_script_do_get_name(struct sieve_storage *storage, i_assert(storage->v.active_script_get_name != NULL); ret = storage->v.active_script_get_name(storage, name_r); + if (ret < 0) { + if (storage->error_code == SIEVE_ERROR_NOT_FOUND) { + sieve_storage_clear_error(storage); + ret = 0; + } + } if (ret != 0 || (storage->flags & SIEVE_STORAGE_FLAG_SYNCHRONIZING) != 0) @@ -1064,7 +1070,7 @@ int sieve_storage_active_script_open(struct sieve_storage *storage, ret = storage->v.active_script_open(storage, &script); i_assert(ret <= 0); - if (ret == 0 || + if (ret == 0 || storage->error_code != SIEVE_ERROR_NOT_FOUND || (storage->flags & SIEVE_STORAGE_FLAG_SYNCHRONIZING) != 0) { if (ret < 0) *error_code_r = storage->error_code;