Follow-up, my hack does not actually work in all situations. The only working way I've found so far is to not use NavigationPath, but a big enum with all cases and use a list of this enum as path. This means you have to handle all navigation in one place, with a .navigationDestination(for:) modifier somewhere high up in the view hierarchy. Not very convenient in a big app, but it works.