docker/cli ยท error

can't save config with empty filename

Error message

can't save config with empty filename

What it means

Error "can't save config with empty filename" thrown in docker/cli.

Source

Thrown at cli/config/configfile/file.go:199

	// User-Agent header is automatically set, and should not be stored in the configuration
	for v := range c.HTTPHeaders {
		if strings.EqualFold(v, "User-Agent") {
			delete(c.HTTPHeaders, v)
		}
	}

	data, err := json.MarshalIndent(c, "", "\t")
	if err != nil {
		return err
	}
	_, err = writer.Write(data)
	return err
}

// Save encodes and writes out all the authorization information
func (c *ConfigFile) Save() (retErr error) {
	if c.Filename == "" {
		return errors.New("can't save config with empty filename")
	}

	dir := filepath.Dir(c.Filename)
	if err := os.MkdirAll(dir, 0o700); err != nil {
		return err
	}
	temp, err := os.CreateTemp(dir, filepath.Base(c.Filename))
	if err != nil {
		return err
	}
	defer func() {
		// ignore error as the file may already be closed when we reach this.
		_ = temp.Close()
		if retErr != nil {
			if err := os.Remove(temp.Name()); err != nil {
				logrus.WithError(err).WithField("file", temp.Name()).Debug("Error cleaning up temp file")
			}
		}

View on GitHub (pinned to e9452d6e78)

When it happens

Trigger: Thrown at cli/config/configfile/file.go:199 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of docker/cli@e9452d6e78 (2026-08-01). Data as JSON: /data/errors/1dfeb1b8a00ce73d.json. Report an issue: GitHub.