shadow1ng/fscan · error

output_init_failed

output_init_failed

Error message

%s: %w

What it means

Wrapper in Initialize: InitOutput failed while setting up result writers (invalid -o path/format, unwritable directory), and the localized 'output_init_failed' prefix is joined with the underlying writer error.

Source

Thrown at common/initialize.go:42

// Initialize 统一初始化函数
// 封装 BuildConfig → InitOutput 流程
func Initialize(info *HostInfo) (*InitResult, error) {
	// 1. 初始化日志系统
	InitLogger()

	// 2. 从 FlagVars 构建 Config 和 State
	cfg, state, err := BuildConfig(GetFlagVars(), info)
	if err != nil {
		return nil, fmt.Errorf("%s: %w", i18n.GetText("config_build_failed"), err)
	}

	// 3. 设置全局实例
	SetGlobalConfig(cfg)
	SetGlobalState(state)

	// 4. 初始化输出系统
	if err := InitOutput(); err != nil {
		return nil, fmt.Errorf("%s: %w", i18n.GetText("output_init_failed"), err)
	}

	session := NewScanSession(cfg, state, GetFlagVars())

	return &InitResult{
		Config:  cfg,
		State:   state,
		Info:    info,
		Session: session,
	}, nil
}

// ValidateExclusiveParams 验证互斥参数
// 检查 -h、-u、-local 只能指定一个
func ValidateExclusiveParams(info *HostInfo) error {
	paramCount := 0
	var activeParam string

View on GitHub (pinned to 95cc12e753)

Solutions

  1. Check the -o output path is writable and its directory exists
  2. Use a supported -f format (txt/json/csv)
  3. Free the locked output file if another process holds it
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at common/initialize.go:42 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of shadow1ng/fscan@95cc12e753 (2026-09-06). Data as JSON: /api/errors/2ea1fd29cf51db4d. Report an issue: GitHub.