diff --git a/src/aleph/db/accessors/messages.py b/src/aleph/db/accessors/messages.py index b5c084ba7..edf4b201c 100644 --- a/src/aleph/db/accessors/messages.py +++ b/src/aleph/db/accessors/messages.py @@ -272,8 +272,13 @@ def get_unconfirmed_messages( ) ) - select_stmt = select(MessageDb).where( - MessageDb.signature.isnot(None) & (~select_message_confirmations.exists()) + select_stmt = ( + select(MessageDb) + .join(MessageStatusDb, MessageStatusDb.item_hash == MessageDb.item_hash) + .where( + MessageDb.signature.isnot(None) & (~select_message_confirmations.exists()) + ) + .order_by(MessageStatusDb.reception_time.asc()) ) return (session.execute(select_stmt.limit(limit))).scalars() diff --git a/tests/db/test_messages.py b/tests/db/test_messages.py index d38ca7ec0..7b610b749 100644 --- a/tests/db/test_messages.py +++ b/tests/db/test_messages.py @@ -257,6 +257,13 @@ async def test_get_unconfirmed_messages( ): with session_factory() as session: session.add(fixture_message) + session.add( + MessageStatusDb( + item_hash=fixture_message.item_hash, + status=MessageStatus.PROCESSED, + reception_time=fixture_message.time, + ) + ) session.commit() with session_factory() as session: