caddyserver/caddy · error

couldn't determine admin API address: %v

Error message

couldn't determine admin API address: %v

What it means

Error "couldn't determine admin API address: %v" thrown in caddyserver/caddy.

Source

Thrown at cmd/commandfuncs.go:363

		if os.Getenv("HOME") == "" && !hasXDG {
			logger.Warn("$HOME environment variable is empty - please fix; some assets might be stored in ./caddy")
		}
	}

	// release the last local logger reference
	logger = nil //nolint:wastedassign,ineffassign

	select {}
}

func cmdStop(fl Flags) (int, error) {
	addressFlag := fl.String("address")
	configFlag := fl.String("config")
	configAdapterFlag := fl.String("adapter")

	adminAddr, err := DetermineAdminAPIAddress(addressFlag, nil, configFlag, configAdapterFlag)
	if err != nil {
		return caddy.ExitCodeFailedStartup, fmt.Errorf("couldn't determine admin API address: %v", err)
	}

	resp, err := AdminAPIRequest(adminAddr, http.MethodPost, "/stop", nil, nil)
	if err != nil {
		caddy.Log().Warn("failed using API to stop instance", zap.Error(err))
		return caddy.ExitCodeFailedStartup, err
	}
	defer resp.Body.Close()

	return caddy.ExitCodeSuccess, nil
}

func cmdReload(fl Flags) (int, error) {
	configFlag := fl.String("config")
	configAdapterFlag := fl.String("adapter")
	addressFlag := fl.String("address")
	forceFlag := fl.Bool("force")

View on GitHub (pinned to 50e54ee279)

Solutions

  1. Start Caddy with a valid admin endpoint, or pass --address with the admin API address of the running instance.
  2. Check that the admin address in the config is valid and reachable.

When it happens

Trigger: Thrown at cmd/commandfuncs.go:363 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of caddyserver/caddy@50e54ee279 (2026-08-15). Data as JSON: /api/errors/2971b0b51ba74f45. Report an issue: GitHub.