projectdiscovery/subfinder · error

%v

Error message

%v

What it means

API-level error from the domains.project passive source: the JSON response decoded successfully but contained a non-empty Error field, which is passed through verbatim as '%v'. It indicates the service reported a problem (e.g. invalid domain or upstream failure) even though the HTTP request itself completed.

Solutions

  1. Read the passed-through error string from domains.project to identify the cause
  2. Confirm the queried domain is well-formed and resolvable by the service
  3. Retry later if the message suggests a transient upstream issue
  4. Ignore this source for the affected domain and continue with other passive sources
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at pkg/subscraping/sources/domainsproject/domainsproject.go:89 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/3d384063d4c42fde. Report an issue: GitHub.

Appendix: source

Thrown at pkg/subscraping/sources/domainsproject/domainsproject.go:89

		defer func() {
			if err := resp.Body.Close(); err != nil {
				results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: err}
				s.errors++
			}
		}()

		var response domainsProjectResponse
		err = jsoniter.NewDecoder(resp.Body).Decode(&response)
		if err != nil {
			results <- subscraping.Result{Source: s.Name(), Type: subscraping.Error, Error: err}
			s.errors++
			return
		}

		if response.Error != "" {
			results <- subscraping.Result{
				Source: s.Name(), Type: subscraping.Error, Error: fmt.Errorf("%v", response.Error),
			}
			s.errors++
			return
		}

		for _, subdomain := range response.Domains {
			if !strings.HasPrefix(subdomain, ".") {
				select {
				case <-ctx.Done():
					return
				case results <- subscraping.Result{Source: s.Name(), Type: subscraping.Subdomain, Value: subdomain}:
					s.results++
				}
			}
		}
	}()

	return results

View on GitHub (pinned to 7a0b91f0fa)