From bd5c88e5fa1c048652ec11875efb1fcc743b54e4 Mon Sep 17 00:00:00 2001 From: Andrew Gunnerson Date: Tue, 2 Jun 2026 17:06:15 -0400 Subject: [PATCH] stbridge: Fix missing directory when importing before first start Signed-off-by: Andrew Gunnerson --- stbridge/stbridge.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/stbridge/stbridge.go b/stbridge/stbridge.go index 85272d5..54de77f 100644 --- a/stbridge/stbridge.go +++ b/stbridge/stbridge.go @@ -956,10 +956,15 @@ func ImportConfiguration(fd int, name string, password string) error { configDir := locations.GetBaseDir(locations.ConfigBaseDir) + // configDir might not exist if the user tried to import before Syncthing + // started for the first time. + if err = os.MkdirAll(configDir, 0o700); err != nil { + return fmt.Errorf("failed to create: %q: %w", configDir, err) + } + // Try to atomically swap the active config dir with the temp dir. The temp // dir cleanup above will delete the old files. - err = tryAtomicSwap(tempDir, configDir) - if err != nil { + if err = tryAtomicSwap(tempDir, configDir); err != nil { return fmt.Errorf("failed to swap: %q <-> %q: %w", tempDir, configDir, err) }