owasp-amass/amass · info

no matching org found

Error message

no matching org found

What it means

After gathering candidate organizations that share a location entity with the input, existsAndSharesLocEntity compares each candidate's names against the input org's names using NameMatch. If none match, the function concludes no deduplicated Organization exists on the graph and returns this sentinel error; callers treat it as 'create a new org'.

Source

Thrown at engine/plugins/support/org/find.go:206

	for _, cr := range crecords {
		if edges, err := sess.DB().OutgoingEdges(ctx, cr, time.Time{}, "organization"); err == nil {
			for _, edge := range edges {
				if a, err := sess.DB().FindEntityById(ctx, edge.ToEntity.ID); err == nil && a != nil {
					if _, ok := a.Asset.(*oamorg.Organization); ok {
						orgents = append(orgents, a)
					}
				}
			}
		}
	}

	for _, orgent := range orgents {
		if _, _, found := NameMatch(sess, orgent, names); found {
			return orgent, nil
		}
	}

	return nil, errors.New("no matching org found")
}

func matchingLocations(sess et.Session, locs []*dbt.Entity) []*dbt.Entity {
	var newlocs []*dbt.Entity

	set := stringset.New()
	defer set.Close()

	for _, loc := range locs {
		set.Insert(loc.ID)
	}

	for _, loc := range locs {
		lasset, valid := loc.Asset.(*oamcon.Location)
		if !valid {
			continue
		}

View on GitHub (pinned to 79299dce87)

Solutions

  1. This is usually expected behavior: create the new Organization (the callers treat this error as 'not found')
  2. Verify NameMatch's normalization rules match your naming conventions (Inc./LLC/Ltd suffixes, casing)
  3. Ensure o.LegalName is populated when the legal name differs from the display name, improving match coverage
  4. Check for typos or alternate spellings in the source data
Defensive patterns

Strategy: fallback

Validate before calling

existing, err := FindOrgByName(sess, org.Name)
if err == nil {
    // reuse existing
} else {
    // create new org — this error is the normal 'not found' path
}

Prevention

When it happens

Trigger: Calling CreateOrgAsset with an org that shares a legal/HQ address or location with existing orgs but whose Name/LegalName differs from every candidate (after normalization) — e.g. same address, different company.

Common situations: Subsidiaries of the same parent sharing an HQ address; coworking/virtual-office addresses hosting many distinct companies; name normalization (case, punctuation, legal suffixes) causing a false mismatch; the org genuinely being new.

Understand the failure class

Background: "Not found" and "does not exist" errors: why "Task not found", "No such folder", and "Can't find" fire when a lookup comes back empty — this error's family across 14 libraries.

Related errors


AI-assisted analysis of owasp-amass/amass@79299dce87 (2026-09-06). Data as JSON: /api/errors/e9d5a39b963f540a. Report an issue: GitHub.