diff --git a/lib/Db/MessageMapper.php b/lib/Db/MessageMapper.php
index b51217e5ce..204719bf1f 100644
--- a/lib/Db/MessageMapper.php
+++ b/lib/Db/MessageMapper.php
@@ -176,10 +176,18 @@ public function findUidsForIds(Mailbox $mailbox, array $ids) {
->from($this->getTableName())
->where(
$query->expr()->eq('mailbox_id', $query->createNamedParameter($mailbox->getId(), IQueryBuilder::PARAM_INT), IQueryBuilder::PARAM_INT),
- $query->expr()->in('id', $query->createNamedParameter($ids, IQueryBuilder::PARAM_INT_ARRAY), IQueryBuilder::PARAM_INT_ARRAY)
+ $query->expr()->in('id', $query->createParameter('ids'), IQueryBuilder::PARAM_INT_ARRAY)
);
- return $this->findUids($query);
+ $chunks = array_chunk($ids, 1000);
+
+ $results = [];
+ foreach ($chunks as $chunk) {
+ $query->setParameter('ids', $chunk, IQueryBuilder::PARAM_INT_ARRAY);
+ $results[] = $this->findUids($query);
+ }
+
+ return array_merge(...$results);
}
/**
diff --git a/tests/psalm-baseline.xml b/tests/psalm-baseline.xml
index f05676999b..7fc2965a83 100644
--- a/tests/psalm-baseline.xml
+++ b/tests/psalm-baseline.xml
@@ -124,7 +124,6 @@
$qb2->createNamedParameter($ids, IQueryBuilder::PARAM_INT_ARRAY)
$qb2->createNamedParameter(array_keys($indexedMessages), IQueryBuilder::PARAM_INT_ARRAY)
$qb4->createNamedParameter($ids, IQueryBuilder::PARAM_INT_ARRAY)
- $query->createNamedParameter($ids, IQueryBuilder::PARAM_INT_ARRAY)
$query->createNamedParameter($uids, IQueryBuilder::PARAM_INT_ARRAY)