cloudflare/cloudflared · error

unable to create directories for new logfile: %s

Error message

unable to create directories for new logfile: %s

What it means

Logger setup failure in createDirFile: os.MkdirAll could not create the configured FileConfig.Dirname directory for a new logfile (bad path component, permission denied, or path exists as a file). File logging cannot start, so the error is stored and surfaced to the caller configuring the logger.

Source

Thrown at logger/create.go:242

			// If creating a new logfile fails, then we have no choice but to error out.
			if err != nil {
				singleFileInit.creationError = err
				return
			}
		}

		singleFileInit.writer = logFile
	})

	return singleFileInit.writer, singleFileInit.creationError
}

func createDirFile(config FileConfig) (io.Writer, error) {
	if config.Dirname != "" {
		err := os.MkdirAll(config.Dirname, dirPermMode)

		if err != nil {
			return nil, fmt.Errorf("unable to create directories for new logfile: %s", err)
		}
	}

	mode := os.FileMode(filePermMode)

	fullPath := filepath.Join(config.Dirname, config.Filename)
	logFile, err := os.OpenFile(fullPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, mode)
	if err != nil {
		return nil, fmt.Errorf("unable to create a new logfile: %s", err)
	}

	return logFile, nil
}

func createRollingLogger(config RollingConfig) (io.Writer, error) {
	rotatingFileInit.once.Do(func() {
		if err := os.MkdirAll(config.Dirname, dirPermMode); err != nil {
			rotatingFileInit.creationError = err

View on GitHub (pinned to 2253eeeb25)

Solutions

  1. Verify the configured directory path is valid and its parents are writable by the cloudflared process.
  2. Check filesystem permissions or run with appropriate privileges/uid.
  3. Correct the log directory in configuration (e.g. --logfile or LogDirectory settings).
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at logger/create.go:242 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of cloudflare/cloudflared@2253eeeb25 (2026-09-06). Data as JSON: /api/errors/33968af2eee2a8a5. Report an issue: GitHub.