When my users see this, they assume that their posts didn’t go through and then they re-post their message again – and then get the same error message again. They usually repeat the re-posting from 2-10 times, before giving up…

I’d greatly prefer it if these users got a nice little message that said something like, “Your post has been put into moderation. We will review it shortly!”

Is giving an error message after an Akismet positive result standard behavior for bbPress?

This is a pretty awful bug… users often repost the same message a dozen times in a row and get filtered over and over – and see that 404 error message each and every time! Then they get screamingly angry (usually at me haha).

Is this fixed in 1.0? Does anyone else get complaints from users about this?

I doubt they anticipated that. Years later, WordPress unbelievably still shows NOTHING when a comment is held in the moderation queue. You have to install a plugin to give the user some kind of clue what has happened. It’s dumbfounding.

Ipstenu, my skip-akismet plugin works on wordpress installs too, though there is some kind of subtle bug I can’t seem to find where it doesn’t catch everyone on the wp side, works great on the bbpress side however.

If you meant what will notify users of comments being held, this will do it:

Here is an untested variation of Mark’s WP plugin for bbPress, it’s a little more sophisticated in that it tries to return the person back to the topic they were in if it exists or if they were starting a topic, to the forum they were posting in.

if ($post->post_position>1) {
$link = get_topic_last_post_link($post->topic_id); // return them to the last known good post in the topic
} else {
$link = get_forum_link($post->forum_id); // return them to the forum that they posted in since there's no valid topic yet
}

$link=add_query_arg('moderated','true',$link); // set the flag

wp_redirect($link);
exit;
}

function moderation_notification_alert() {
if (!isset($_GET['moderated'])) {return;}
$out = <<<EOF
<script type="text/javascript">
<!--
alert ("You post was successfully processed, \n\n however it was placed on hold and will appear once a moderator verifies that it is not spam.\n\n Please be patient and do not resubmit your comment.");
//-->
</script>
EOF;
echo $out;
}

?>

You can see the notice by putting ?moderated=true on one of your urls

I don’t recommend trying to purposely cause spam to test it because akismet might flag you globally as a spammer and you’ll end up being bozo’ed across multiple forums/blogs.