 
             // If we don't need resolution and there are no extra constraints,
             // just validate pinsStore and return.
-            if !result.resolve && extraConstraints.isEmpty {
+            if !result.resolve && extraConstraints.isEmpty && !forceResolution {
                 return currentManifests
             }
 

    /// checkout will be restored according to its pin.
    public func resolve(
        root: PackageGraphRootInput,
        diagnostics: DiagnosticsEngine
    ) {
        _resolve(root: root, diagnostics: diagnostics)
    }

    /// Loads and returns manifests at the given paths.

    @discardableResult
    fileprivate func _resolve(
        root: PackageGraphRootInput,
        forceResolution: Bool,
        extraConstraints: [RepositoryPackageConstraint] = [],
        diagnostics: DiagnosticsEngine,
        retryOnPackagePathMismatch: Bool = true
