i_stream_unref(&ctx->ctx.input);
if (ctx->ctx.failed) {
+ mail_index_expunge(ctx->ctx.trans, ctx->ctx.seq);
mdbox_map_append_abort(ctx->append_ctx);
array_delete(&ctx->mails, array_count(&ctx->mails) - 1, 1);
return -1;
ctx->ctx.failed = TRUE;
} T_END;
- if (ctx->ctx.failed)
+ if (ctx->ctx.failed) {
+ mail_index_expunge(ctx->ctx.trans, ctx->ctx.seq);
dbox_file_append_rollback(&ctx->append_ctx);
- else {
+ } else {
dbox_file_append_checkpoint(ctx->append_ctx);
if (dbox_file_append_commit(&ctx->append_ctx) < 0)
ctx->ctx.failed = TRUE;