{"record":{"id":"f2bd4476e0abeca6","repo":"apple/pkl","slug":"unsupportedprojectdepsversion","errorCode":"unsupportedProjectDepsVersion","errorMessage":"unsupportedProjectDepsVersion","messagePattern":"unsupportedProjectDepsVersion","errorType":"error_code","errorClass":"PackageLoadError","httpStatus":null,"severity":"error","filePath":"pkl-core/src/main/java/org/pkl/core/project/ProjectDeps.java","lineNumber":94,"sourceCode":" * </pre>\n * </code>\n */\npublic final class ProjectDeps {\n  private static final Set<Integer> supportedSchemaVersions = Set.of(1);\n\n  private final EconomicMap<CanonicalPackageUri, Dependency> resolvedDependencies;\n\n  public static ProjectDeps parse(Path path)\n      throws IOException, URISyntaxException, JsonParseException {\n    var input = Files.readString(path);\n    return parse(input);\n  }\n\n  public static ProjectDeps parse(String input) throws JsonParseException {\n    var parsed = Json.parseObject(input);\n    var schemaVersion = parsed.getInt(\"schemaVersion\");\n    if (!supportedSchemaVersions.contains(schemaVersion)) {\n      throw new PackageLoadError(\"unsupportedProjectDepsVersion\", schemaVersion);\n    }\n    var resolvedDependencies =\n        parsed.get(\"resolvedDependencies\", ProjectDeps::parseResolvedDependencies);\n    return new ProjectDeps(resolvedDependencies);\n  }\n\n  private static EconomicMap<CanonicalPackageUri, Dependency> parseResolvedDependencies(\n      Object object) throws JsonParseException, URISyntaxException {\n    if (!(object instanceof JsObject jsObj)) {\n      throw new FormatException(\"resolvedDependencies\", \"object\", object.getClass());\n    }\n    var ret = EconomicMaps.<CanonicalPackageUri, Dependency>create(jsObj.size());\n    for (var entry : jsObj.entrySet()) {\n      Dependency resolvedDependency = parseResolvedDependency(entry);\n      var canonicalPackageUri = CanonicalPackageUri.of(entry.getKey());\n      ret.put(canonicalPackageUri, resolvedDependency);\n    }\n    return ret;","sourceCodeStart":76,"sourceCodeEnd":112,"githubUrl":"https://github.com/apple/pkl/blob/f3efcbfc9b60d30053b0536d664948d7aa1b8673/pkl-core/src/main/java/org/pkl/core/project/ProjectDeps.java#L76-L112","documentation":"ProjectDeps.parse() reads the schemaVersion field of the .pkl-project-deps.json-style input and only accepts known supported schema versions. An unrecognized (usually newer) schema version makes parsing fail with PackageLoadError('unsupportedProjectDepsVersion').","triggerScenarios":"Calling ProjectDeps.parse(input) where parsed.getInt(\"schemaVersion\") returns a value not in supportedSchemaVersions — e.g. a deps file written by a newer Pkl CLI being parsed by an older runtime.","commonSituations":"Upgrading the Pkl CLI (writing a new deps schema) while the embedded pkl-core runtime is older; hand-editing schemaVersion; copying deps files between projects produced by different tool versions.","solutions":["Upgrade the Pkl runtime/tooling so supportedSchemaVersions includes the file's schemaVersion","Regenerate the deps file with the currently installed CLI version (delete and re-run the resolve command)","Check the schemaVersion value in the file and correct it if it was edited by mistake"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"var obj = Json.parseObject(input);\nint v = obj.getInt(\"schemaVersion\");\nif (!Set.of(1).contains(v)) throw new IllegalArgumentException(\"unsupported schemaVersion: \" + v);","typeGuard":"boolean isSupportedSchema(int v) { return v >= 1 && v <= MAX_SUPPORTED_SCHEMA_VERSION; }","tryCatchPattern":"try { ProjectDeps.parse(input); } catch (PackageLoadError e) { /* upgrade Pkl tooling or regenerate deps file */ }","preventionTips":["Keep the pkl-core runtime and CLI versions in lockstep","Don't hand-edit schemaVersion in deps files","Regenerate deps files after tool upgrades"],"tags":["versioning","schema","dependency-resolution"],"backgroundTag":"unsupported-config-value","analyzedSha":"f3efcbfc9b60d30053b0536d664948d7aa1b8673","analyzedAt":"2026-09-08T13:10:45.570Z","contentChangedAt":"2026-09-08T13:10:45.570Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}