Error: Usage Requirements Cycle

A library can declare that it uses another library by using the using key in its project/package manifest.

These using requirements must form a directed acyclic graph, meaning that there can be no dependency cycle. For example, if library clover lists library beehive in its uses list, then beehive cannot also list clover—even transitively—else there would be a dependency cycle.

To fix this issue, you must remove the dependency cycle. Oftentimes, this can be done by splitting one of the libraries into two. For example, beehive can become pollinator + beehive with beehive uses pollinator and clover uses pollinator.

Also, note that this issue also occurs when a library uses itself. You can resolve that issue by removing the self reference; libraries already implicitly have access to themselves.