Jguer/yay · error · ErrCircular

circular dependencies not allowed

Error message

 circular dependencies not allowed

What it means

Graph API sentinel error returned by Graph.DependOn when adding the edge child->parent would create a cycle, detected by checking whether parent already (transitively) depends on child. Dependency graphs must be a DAG for topological sorting to work, so cyclic edges are rejected at insertion time.

Solutions

  1. Break the cycle by removing or relaxing one dependency in the chain
  2. Check for version-pinned or split-package depends that erroneously reference each other
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/dep/topo/errors.go:14 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Jguer/yay@328f4b4939 (2026-09-07). Data as JSON: /api/errors/4d8f41c26abfd379. Report an issue: GitHub.

Appendix: source

Thrown at pkg/dep/topo/errors.go:14

package topo

import "errors"

var (
	// ErrSelfReferential is returned when attempting to create an edge where a node depends on itself.
	ErrSelfReferential = errors.New(" self-referential dependencies not allowed")

	// ErrConflictingAlias is reserved for when a "provides" alias is defined more than once.
	// Note: current Graph APIs overwrite provides entries; this error is not currently returned.
	ErrConflictingAlias = errors.New(" alias already defined")

	// ErrCircular is returned when attempting to create an edge that would introduce a cycle.
	ErrCircular = errors.New(" circular dependencies not allowed")
)

View on GitHub (pinned to 328f4b4939)