diff --git a/src/plugins/imap-filter-sieve/imap-filter-sieve.c b/src/plugins/imap-filter-sieve/imap-filter-sieve.c index 8b0d54da03f704928fcbc151fc5d29405c36de95..637de53f539979b52801e89797b7804675e7aca9 100644 --- a/src/plugins/imap-filter-sieve/imap-filter-sieve.c +++ b/src/plugins/imap-filter-sieve/imap-filter-sieve.c @@ -937,6 +937,12 @@ int imap_sieve_filter_run_mail(struct imap_filter_sieve_context *sctx, if (trace_log != NULL) sieve_trace_log_free(&trace_log); + if (ret < 0 || str_len(sctx->errors) == 0) { + /* Failed, but no user error was logged: log a generic internal + error instead. */ + sieve_internal_error(user_ehandler, NULL, NULL); + } + *have_warnings_r = (sieve_get_warnings(user_ehandler) > 0); *have_changes_r = estatus.significant_action_executed; *errors_r = sctx->errors;