mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-17 02:49:09 +02:00
A non-append SelectRoutes() wipes the current selection before applying the requested one, but it validated the requested IDs only afterwards, while already mutating. A request naming no available route at all left every route deselected and returned an error - so a typo in a route ID silently dropped the user's exit node, and the routes stayed applied while the selector claimed nothing was selected. Validate first and bail out before touching any state when nothing in the request is available. A request with at least one available route keeps applying the valid part and reporting the rest, and an empty request still deselects everything, since that is the caller asking for exactly that rather than a failed lookup. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>