diff --git a/server/src/queries/asset.repository.sql b/server/src/queries/asset.repository.sql
index 4564971ac2..f4f13c4d2b 100644
--- a/server/src/queries/asset.repository.sql
+++ b/server/src/queries/asset.repository.sql
@@ -296,7 +296,11 @@ with
   "duplicates" as (
     select
       "assets"."duplicateId",
-      jsonb_agg("asset") as "assets"
+      json_agg(
+        "asset"
+        order by
+          "assets"."localDateTime" asc
+      ) as "assets"
     from
       "assets"
       left join lateral (
@@ -323,7 +327,7 @@ with
     from
       "duplicates"
     where
-      jsonb_array_length("assets") = $3
+      json_array_length("assets") = $3
   ),
   "removed_unique" as (
     update "assets"
diff --git a/server/src/repositories/asset.repository.ts b/server/src/repositories/asset.repository.ts
index d49124b04b..e118bf39ad 100644
--- a/server/src/repositories/asset.repository.ts
+++ b/server/src/repositories/asset.repository.ts
@@ -649,10 +649,7 @@ export class AssetRepository {
             )
             .select('assets.duplicateId')
             .select((eb) =>
-              eb
-                .fn('jsonb_agg', [eb.table('asset')])
-                .$castTo<MapAsset[]>()
-                .as('assets'),
+              eb.fn.jsonAgg('asset').orderBy('assets.localDateTime', 'asc').$castTo<MapAsset[]>().as('assets'),
             )
             .where('assets.ownerId', '=', asUuid(userId))
             .where('assets.duplicateId', 'is not', null)
@@ -666,7 +663,7 @@ export class AssetRepository {
           qb
             .selectFrom('duplicates')
             .select('duplicateId')
-            .where((eb) => eb(eb.fn('jsonb_array_length', ['assets']), '=', 1)),
+            .where((eb) => eb(eb.fn('json_array_length', ['assets']), '=', 1)),
         )
         .with('removed_unique', (qb) =>
           qb
@@ -677,7 +674,7 @@ export class AssetRepository {
         )
         .selectFrom('duplicates')
         .selectAll()
-        // TODO: compare with filtering by jsonb_array_length > 1
+        // TODO: compare with filtering by json_array_length > 1
         .where(({ not, exists }) =>
           not(exists((eb) => eb.selectFrom('unique').whereRef('unique.duplicateId', '=', 'duplicates.duplicateId'))),
         )