diff --git a/Sources/BuildSystemIntegration/SwiftPMBuildSystem.swift b/Sources/BuildSystemIntegration/SwiftPMBuildSystem.swift
index 7273707a2..839da5883 100644
--- a/Sources/BuildSystemIntegration/SwiftPMBuildSystem.swift
+++ b/Sources/BuildSystemIntegration/SwiftPMBuildSystem.swift
@@ -203,18 +203,23 @@ package actor SwiftPMBuildSystem: BuiltInBuildSystem {
       throw Error.cannotDetermineHostToolchain
     }
 
+    var absProjectRoot = try AbsolutePath(validating: projectRoot.filePath)
     let hostSDK = try SwiftSDK.hostSwiftSDK(AbsolutePath(validating: destinationToolchainBinDir.filePath))
     let hostSwiftPMToolchain = try UserToolchain(swiftSDK: hostSDK)
 
     let destinationSDK = try SwiftSDK.deriveTargetSwiftSDK(
       hostSwiftSDK: hostSDK,
       hostTriple: hostSwiftPMToolchain.targetTriple,
-      customToolsets: options.swiftPMOrDefault.toolsets?.map { try AbsolutePath(validating: $0) } ?? [],
+      customToolsets: options.swiftPMOrDefault.toolsets?.map {
+        try AbsolutePath(validating: $0, relativeTo: absProjectRoot)
+      } ?? [],
       customCompileTriple: options.swiftPMOrDefault.triple.map { try Triple($0) },
       swiftSDKSelector: options.swiftPMOrDefault.swiftSDK,
       store: SwiftSDKBundleStore(
         swiftSDKsDirectory: localFileSystem.getSharedSwiftSDKsDirectory(
-          explicitDirectory: options.swiftPMOrDefault.swiftSDKsDirectory.map { try AbsolutePath(validating: $0) }
+          explicitDirectory: options.swiftPMOrDefault.swiftSDKsDirectory.map {
+            try AbsolutePath(validating: $0, relativeTo: absProjectRoot)
+          }
         ),
         fileSystem: localFileSystem,
         observabilityScope: observabilitySystem.topScope.makeChildScope(description: "SwiftPM Bundle Store"),
@@ -227,20 +232,14 @@ package actor SwiftPMBuildSystem: BuiltInBuildSystem {
     let destinationSwiftPMToolchain = try UserToolchain(swiftSDK: destinationSDK)
 
     var location = try Workspace.Location(
-      forRootPackage: try AbsolutePath(validating: projectRoot.filePath),
+      forRootPackage: absProjectRoot,
       fileSystem: localFileSystem
     )
+
     if options.backgroundIndexingOrDefault {
-      location.scratchDirectory = try AbsolutePath(
-        validating: projectRoot.appendingPathComponent(".build").appendingPathComponent("index-build").filePath
-      )
-    } else if let scratchDirectory = options.swiftPMOrDefault.scratchPath,
-      let scratchDirectoryPath = try? AbsolutePath(
-        validating: scratchDirectory,
-        relativeTo: AbsolutePath(validating: projectRoot.filePath)
-      )
-    {
-      location.scratchDirectory = scratchDirectoryPath
+      location.scratchDirectory = absProjectRoot.appending(components: ".build", "index-build")
+    } else if let scratchDirectory = options.swiftPMOrDefault.scratchPath {
+      location.scratchDirectory = try AbsolutePath(validating: scratchDirectory, relativeTo: absProjectRoot)
     }
 
     var configuration = WorkspaceConfiguration.default