projectdiscovery/subfinder · error

no input list provided

Error message

no input list provided

What it means

Validation error from Options.validateOptions: neither -d (Domain), -dL (DomainsFile) nor stdin input was provided, so subfinder has no targets to enumerate and aborts during ParseOptions rather than starting any source queries.

Solutions

  1. Pass at least one domain with -d or a domain list file with -dL
  2. Pipe targets on stdin (e.g. cat domains.txt | subfinder) with the -stdin flag
  3. Print CLI usage/help when this error is returned so the user sees the required input flags
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/runner/validate.go:22 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of projectdiscovery/subfinder@7a0b91f0fa (2026-09-06). Data as JSON: /api/errors/04c9f17d816b3aa1. Report an issue: GitHub.

Appendix: source

Thrown at pkg/runner/validate.go:22

	"errors"
	"fmt"
	"regexp"
	"strings"

	"github.com/projectdiscovery/gologger"
	"github.com/projectdiscovery/gologger/formatter"
	"github.com/projectdiscovery/gologger/levels"
	"github.com/projectdiscovery/subfinder/v2/pkg/passive"
	mapsutil "github.com/projectdiscovery/utils/maps"
	sliceutil "github.com/projectdiscovery/utils/slice"
)

// validateOptions validates the configuration options passed
func (options *Options) validateOptions() error {
	// Check if domain, list of domains, or stdin info was provided.
	// If none was provided, then return.
	if len(options.Domain) == 0 && options.DomainsFile == "" && !options.Stdin {
		return errors.New("no input list provided")
	}

	// Both verbose and silent flags were used
	if options.Verbose && options.Silent {
		return errors.New("both verbose and silent mode specified")
	}

	// Validate threads and options
	if options.Threads == 0 {
		return errors.New("threads cannot be zero")
	}
	if options.Timeout == 0 {
		return errors.New("timeout cannot be zero")
	}

	// Always remove wildcard with hostip
	if options.HostIP && !options.RemoveWildcard {
		return errors.New("hostip flag must be used with RemoveWildcard option")

View on GitHub (pinned to 7a0b91f0fa)