gastownhall/beads · error

applying %s: %w

Error message

applying %s: %w

What it means

promoteExplicitServerConnFlags applies the validated env mutations (BEADS_DOLT_SERVER_HOST/PORT/USER/...) via os.Setenv/os.Unsetenv. If the OS-level env write fails, the already-applied mutations are rolled back via restore() and this error wraps the key and underlying cause. In practice os.Setenv rarely fails, so this usually indicates an out-of-memory or extreme environment-block condition.

Source

Thrown at cmd/bd/init.go:3285

			}
			_ = os.Unsetenv(key)
		}
	}

	for _, mut := range muts {
		if _, seen := saved[mut.key]; !seen {
			value, present := os.LookupEnv(mut.key)
			saved[mut.key] = savedEnv{value: value, present: present}
		}
		var applyErr error
		if mut.unset {
			applyErr = os.Unsetenv(mut.key)
		} else {
			applyErr = os.Setenv(mut.key, mut.value)
		}
		if applyErr != nil {
			restore()
			return noop, fmt.Errorf("applying %s: %w", mut.key, applyErr)
		}
	}
	return restore, nil
}

func initDoltServerTLSFromEnv() bool {
	return (&configfile.Config{}).GetDoltServerTLS()
}

func initTimeCloneConfig(serverMode bool, serverHost string, serverPort int, serverSocket, serverUser, dbName string) *configfile.Config {
	cfg := configfile.DefaultConfig()
	cfg.Backend = configfile.BackendDolt
	cfg.DoltDatabase = dbName
	if serverMode {
		cfg.DoltMode = configfile.DoltModeServer
		cfg.DoltServerHost = configfile.DefaultDoltServerHost
		cfg.DoltServerUser = configfile.DefaultDoltServerUser
	} else {

View on GitHub (pinned to 71377f2769)

Solutions

  1. Retry the command after checking system memory and environment size
  2. Reduce the environment block size (unset unneeded variables)
  3. Simplify the invocation (pass fewer promoted flags) to reduce mutation count
  4. If using a sandbox wrapper, verify it permits os.Setenv for the bd process

Example fix

// before: near-OS-limit environment
$ env $(huge-env) bd init --server-host h
applying BEADS_DOLT_SERVER_HOST: setenv: cannot allocate memory
// after
$ env -i PATH=$PATH HOME=$HOME bd init --server-host h
Defensive patterns

Strategy: retry

Try / catch

restore, err := promoteExplicitServerConnFlags(cmd); if err != nil { defer restore(); return fmt.Errorf("flag promotion: %w", err) }

Prevention

When it happens

Trigger: Applying a validated serverConnEnvMutation where os.Setenv or os.Unsetenv returns an error, aborting flag promotion and restoring prior env state.

Common situations: Memory exhaustion during process setup; very large environment blocks near OS limits; exotic sandboxing runtimes that intercept or forbid env changes.

Related errors


AI-assisted analysis of gastownhall/beads@71377f2769 (2026-08-30). Data as JSON: /api/errors/82900d743e1a307e. Report an issue: GitHub.