{"record":{"id":"04c9f17d816b3aa1","repo":"projectdiscovery/subfinder","slug":"no-input-list-provided","errorCode":null,"errorMessage":"no input list provided","messagePattern":"no input list provided","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/runner/validate.go","lineNumber":22,"sourceCode":"\t\"errors\"\n\t\"fmt\"\n\t\"regexp\"\n\t\"strings\"\n\n\t\"github.com/projectdiscovery/gologger\"\n\t\"github.com/projectdiscovery/gologger/formatter\"\n\t\"github.com/projectdiscovery/gologger/levels\"\n\t\"github.com/projectdiscovery/subfinder/v2/pkg/passive\"\n\tmapsutil \"github.com/projectdiscovery/utils/maps\"\n\tsliceutil \"github.com/projectdiscovery/utils/slice\"\n)\n\n// validateOptions validates the configuration options passed\nfunc (options *Options) validateOptions() error {\n\t// Check if domain, list of domains, or stdin info was provided.\n\t// If none was provided, then return.\n\tif len(options.Domain) == 0 && options.DomainsFile == \"\" && !options.Stdin {\n\t\treturn errors.New(\"no input list provided\")\n\t}\n\n\t// Both verbose and silent flags were used\n\tif options.Verbose && options.Silent {\n\t\treturn errors.New(\"both verbose and silent mode specified\")\n\t}\n\n\t// Validate threads and options\n\tif options.Threads == 0 {\n\t\treturn errors.New(\"threads cannot be zero\")\n\t}\n\tif options.Timeout == 0 {\n\t\treturn errors.New(\"timeout cannot be zero\")\n\t}\n\n\t// Always remove wildcard with hostip\n\tif options.HostIP && !options.RemoveWildcard {\n\t\treturn errors.New(\"hostip flag must be used with RemoveWildcard option\")","sourceCodeStart":4,"sourceCodeEnd":40,"githubUrl":"https://github.com/projectdiscovery/subfinder/blob/7a0b91f0fac01b62c65328bd771a3560ae611d6a/pkg/runner/validate.go#L4-L40","documentation":"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.","triggerScenarios":"Thrown at pkg/runner/validate.go:22 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass at least one domain with -d or a domain list file with -dL","Pipe targets on stdin (e.g. cat domains.txt | subfinder) with the -stdin flag","Print CLI usage/help when this error is returned so the user sees the required input flags"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7a0b91f0fac01b62c65328bd771a3560ae611d6a","analyzedAt":"2026-09-06T23:52:02.109Z","contentChangedAt":"2026-09-06T23:52:02.109Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}