From a1cb6595ce13d772fe8b106f81a1246810bddce2 Mon Sep 17 00:00:00 2001 From: bluebluesoda <300733005+bluebluesoda@users.noreply.github.com> Date: Sat, 22 Aug 2026 10:04:06 +0000 Subject: [PATCH] fix(mgr): skip guests that reject IPv6 config instead of failing reapply vps-ipv6.service runs `vps ipv6-reapply`, which failed hard when a single container (e.g. a user-broken networkd) rejected its config. That aborted `systemctl enable --now vps-ipv6` during install and left `vps install` halfway, with the panel service stopped. Align ipv6-reapply with the install path: treat RoutedIPv6Error as a warning and move on, so one bad guest cannot take down the boot unit or the panel. Host-level errors still abort. Co-authored-by: CommandCodeBot --- src/main.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main.go b/src/main.go index 452ce92..9dc097e 100644 --- a/src/main.go +++ b/src/main.go @@ -429,7 +429,17 @@ func cmdIPv6Reapply() error { // Also re-apply the per-container routed-IPv6 config, so the boot unit and // a manual `vps ipv6-reapply` heal containers that were created before // the host-routed scheme existed or whose networkd config got corrupted. - return m.EnsureRoutedIPv6() + // One guest that rejects its config (e.g. a user-broken networkd) must not + // fail the whole pass: log it and move on, so vps-ipv6.service stays up and + // the panel comes back. Genuine host-level errors still abort. + if err := m.EnsureRoutedIPv6(); err != nil { + var guestErr *mgr.RoutedIPv6Error + if !errors.As(err, &guestErr) { + return err + } + log.Printf("warning: routed IPv6 was not applied to container %s: %v; skipping", guestErr.Container, guestErr.Err) + } + return nil } func writeUnit(name, content string) error {