diff --git a/src/frontend/src/components/nav/NavigationTree.tsx b/src/frontend/src/components/nav/NavigationTree.tsx index 1abf8a8cfe..de8c262c26 100644 --- a/src/frontend/src/components/nav/NavigationTree.tsx +++ b/src/frontend/src/components/nav/NavigationTree.tsx @@ -170,7 +170,11 @@ export default function NavigationTree({ if (!sourceNodes.length) return []; - for (const raw of sourceNodes) { + // Sort by level so parents are always inserted before their children, + // regardless of the order the API returns items (e.g. after ancestor union in search mode). + const sorted = [...sourceNodes].sort((a, b) => a.level - b.level); + + for (const raw of sorted) { const node = { ...raw, children: [],