{"record":{"id":"f8319c9772d22eee","repo":"apple/pkl","slug":"localappdata-is-an-invalid-path","errorCode":null,"errorMessage":"'LOCALAPPDATA' is an invalid path: {}","messagePattern":"'LOCALAPPDATA' is an invalid path: (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkl-executor/src/main/java/org/pkl/executor/ExecutorOptions.java","lineNumber":102,"sourceCode":"    // depend on pkl-core).\n    //\n    // On Unix prefer the XDG-style `~/.cache/pkl`.\n    // On Windows prefer `%LOCALAPPDATA%/pkl/Cache`.\n    var xdgConfig = environmentVariables.get(\"XDG_CACHE_HOME\");\n    if (xdgConfig != null && !xdgConfig.isEmpty()) {\n      try {\n        return Path.of(xdgConfig).resolve(\"pkl\");\n      } catch (InvalidPathException e) {\n        logger.warn(\"'XDG_CACHE_HOME' is an invalid path: {}\", e.getMessage());\n      }\n    }\n    if (isWindows) {\n      var localAppData = environmentVariables.get(\"LOCALAPPDATA\");\n      if (localAppData != null && !localAppData.isEmpty()) {\n        try {\n          return Path.of(localAppData).resolve(\"pkl/Cache\");\n        } catch (InvalidPathException e) {\n          logger.warn(\"'LOCALAPPDATA' is an invalid path: {}\", e.getMessage());\n        }\n      }\n    }\n    return home.resolve(\".cache/pkl\");\n  }\n\n  private static boolean isWindowsOs() {\n    var osName = System.getProperty(\"os.name\");\n    return osName != null && osName.toLowerCase(Locale.ROOT).contains(\"windows\");\n  }\n\n  public static Builder builder() {\n    return new Builder();\n  }\n\n  /**\n   * A builder of {@link ExecutorOptions}.\n   *","sourceCodeStart":84,"sourceCodeEnd":120,"githubUrl":"https://github.com/apple/pkl/blob/f3efcbfc9b60d30053b0536d664948d7aa1b8673/pkl-executor/src/main/java/org/pkl/executor/ExecutorOptions.java#L84-L120","documentation":"Warning (not fatal) in ExecutorOptions.defaultModuleCacheDir: the LOCALAPPDATA environment variable is set but is not a valid path on this platform (InvalidPathException, e.g. containing NUL or illegal characters on Windows). The invalid value is logged and the code falls back to another cache directory; the input at fault is the LOCALAPPDATA environment variable.","triggerScenarios":"Thrown at pkl-executor/src/main/java/org/pkl/executor/ExecutorOptions.java:102 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the LOCALAPPDATA environment variable to a valid Windows path.","Unset LOCALAPPDATA so the default fallback location is used."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"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"}