                 fatalError("unexpected requirement value for assignment \(assignment.term)")
             }
 
-            let container = try getContainer(for: assignment.term.package)
+            let container = try provider.getContainer(for: assignment.term.package)
             let identifier = try container.getUpdatedIdentifier(at: boundVersion)
 
             return (identifier, boundVersion)

        traceFile: AbsolutePath? = nil,
        traceStream: OutputByteStream? = nil
    ) {
        self.provider = provider
        self.delegate = delegate
        self.isPrefetchingEnabled = isPrefetchingEnabled
        self.skipUpdate = skipUpdate


            // Process dependencies of this package, similar to the first phase but branch-based dependencies
            // are not allowed to contain local/unversioned packages.
            let container = try provider.getContainer(for: package)

            // If there is a pin for this revision-based dependency, get
            // the dependencies at the pinned revision instead of using
