Spent a pointlessly long time on this.

Thanks to Mcnab.co, I sorted it out.

I’d created a custom homepage template which had the following line:

<?php echo $this->getHtml('global_notices') ?>

When instead it should be:

<?php echo $this->getHtml('global_messages') ?>

Phew.

EDIT: Additionally, if you have products on your homepage with “Add to Cart” buttons, you’ll need a message for that too.

<div id="messages_product_view"><?php echo $this->getMessagesBlock()->toHtml() ?></div>

Plonk that wherever you like.