# Navmesh tiles are not rebuilt for InstancedStaticMeshComponents (ISM/HISM) when their streaming sublevel is reloaded 

**URL:** <https://forums.unrealengine.com/t/navmesh-tiles-are-not-rebuilt-for-instancedstaticmeshcomponents-ism-hism-when-their-streaming-sublevel-is-reloaded/2851100>\
**Category:** Issues and Bug Reporting (Unreal Engine)\
**Tags:** unreal-engine\
**Created:** [November 5, 2026, 6:39pm UTC](https://forums.unrealengine.com/t/navmesh-tiles-are-not-rebuilt-for-instancedstaticmeshcomponents-ism-hism-when-their-streaming-sublevel-is-reloaded/2851100 "2026-11-05T18:39:21Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![swordgaru](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@swordgaru](https://forums.unrealengine.com/u/swordgaru)\
**Post date:** [November 5, 2026, 6:39pm UTC](https://forums.unrealengine.com/t/navmesh-tiles-are-not-rebuilt-for-instancedstaticmeshcomponents-ism-hism-when-their-streaming-sublevel-is-reloaded/2851100/1 "2026-11-05T18:39:21Z")

</div>

### Summary

We have two streaming sublevels, A and B:

Sublevel A contains a body of water.  
Sublevel B contains a bridge built from a HierarchicalInstancedStaticMeshComponent. The bridge reaches across sublevel B’s boundary and sits on top of the water in sublevel A, so the two sublevels overlap there.

The navmesh uses Dynamic runtime generation with navigation invokers.

When the player moves far enough away, sublevel B (with the bridge) is unloaded while sublevel A (with the water) stays loaded. The navmesh tiles over the water are rebuilt without the bridge, which is correct.  
When the player comes back and sublevel B is loaded again, the tiles where the bridge overlaps the water should be rebuilt with the bridge geometry. They are not.

Root cause we found:

Since 5.6, components are no longer added to the navigation octree in each component’s OnRegister. As an optimization, this now happens in OnActorRegistered, after all of the actor’s components are registered.  
UInstancedStaticMeshComponent::OnRegister still requests a navigation rebuild for its instances (dirty area) during its own OnRegister. At that point the component isn’t in the navigation octree yet, so the request is ignored.  
Regular StaticMeshComponents aren’t affected because adding them to the octree dirties their whole bounds. ISM/HISM components rely only on that earlier request, so nothing is ever rebuilt for them.

Our workaround (engine change): in OnActorRegistered, after the component is added to the navigation octree, re-issue the dirty-area / rebuild request for any ISM component whose earlier request was dropped. This fixes the issue on our side.

### What Type of Bug are you experiencing?

AI

### Steps to Reproduce

Set up a navmesh with Runtime Generation = Dynamic and use navigation invokers on the player.  
Create two streaming sublevels, A and B. Put a body of water in sublevel A.  
In sublevel B, place a walkable bridge made of an InstancedStaticMeshComponent or HierarchicalInstancedStaticMeshComponent. Make the bridge extend over and overlap the water in sublevel A, connecting the two areas.  
In PIE/game, walk far enough away that sublevel B unloads while sublevel A stays loaded. The navmesh tiles over the water are rebuilt without the bridge.  
Walk back so sublevel B loads again.  
Look at the navmesh (show Navigation) where the bridge overlaps the water.

### Expected Result

When sublevel B is loaded again, the navmesh tiles where its ISM/HISM bridge overlaps sublevel A’s water are rebuilt with the bridge geometry. The navmesh connects across the water and AI/players can path across the bridge.

### Observed Result

The navmesh tiles over the water are not rebuilt after sublevel B reloads. The navmesh built without the bridge (water only) stays in place, which leaves a gap/height step where the bridge is. AI cannot path across, and the area stays blocked until something else dirties those tiles. Regular StaticMeshComponents in the same situation rebuild correctly. Only InstancedStaticMeshComponent / HierarchicalInstancedStaticMeshComponent are affected. This started in UE 5.6.

### Affects Versions

5.8

### Platform(s)

Windows

### Upload an image

 ![State with a cutout navigation mesh.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/a/8/b/a8b8022d3b58145d792885e712c1b3167b7985bc.png) ![R01_X05Y12_World Composition_Sublevel_Wooden Bridge Part.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/5/e/8/5e89e6e9abd1b33231a4f6fee1af89efeebb36e6.png) ![R01_X04Y12_World Composition_Sublevel_Water Part.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/f/5/f/f5f238de39830e7852cf20740b9b2b8608acb79f.png)
