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
- Break the cycle by removing or relaxing one dependency in the chain
- 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)