                 manifestVersion: manifestVersion)
         }
 
-        // Validate that the file exists.
-        guard isFile(inputPath) else {
-            throw PackageModel.Package.Error.noManifest(baseURL: baseURL, version: version?.description)
-        }
-
         // Get the json from manifest.
-        let parseResult = try parse(path: inputPath, manifestVersion: manifestVersion)
-
-        let json = try JSON(string: parseResult.jsonString)
+        let jsonString = try parse(path: inputPath, manifestVersion: manifestVersion)
+        let json = try JSON(string: jsonString)
 
         // Load the manifest from JSON.
         let manifestBuilder = try ManifestBuilder(v4: json, baseURL: baseURL)

    private func parse(
        path manifestPath: AbsolutePath,
        manifestVersion: ManifestVersion
    ) throws -> (jsonString: String, interpreterFlags: [String]) {
        // The compiler has special meaning for files with extensions like .ll, .bc etc.
        // Assert that we only try to load files with extension .swift to avoid unexpected loading behavior.
        assert(manifestPath.extension == "swift",

            throw ManifestParseError.invalidEncoding
        }

        return json
    }

    /// Returns path to the sdk, if possible.
