{"record":{"id":"758a0ab4c49dd9a8","repo":"apple/pkl","slug":"invalidglobpattern-758a0a","errorCode":"invalidGlobPattern","errorMessage":"Invalid glob pattern `{0}`.","messagePattern":"Invalid glob pattern `(.+?)`\\.","errorType":"error_code","errorClass":"VmException","httpStatus":null,"severity":"error","filePath":"pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ImportGlobNode.java","lineNumber":107,"sourceCode":"              currentModule.getUri(),\n              globPattern);\n      var builder = new VmObjectBuilder(resolvedElements.size());\n      for (var entry : resolvedElements.entrySet()) {\n        builder.addEntry(entry.getKey(), getMemberNode());\n      }\n      cachedResult = builder.toMapping(resolvedElements);\n      return cachedResult;\n    } catch (IOException e) {\n      throw exceptionBuilder().evalError(\"ioErrorResolvingGlob\", importUri).withCause(e).build();\n    } catch (SecurityManagerException | HttpClientException e) {\n      throw exceptionBuilder().withCause(e).build();\n    } catch (PackageLoadError e) {\n      throw exceptionBuilder().adhocEvalError(e.getMessage()).build();\n    } catch (InvalidGlobPatternException e) {\n      throw exceptionBuilder()\n          .evalError(\"invalidGlobPattern\", globPattern)\n          .withHint(e.getMessage())\n          .build();\n    } catch (ExternalReaderProcessException e) {\n      throw exceptionBuilder().evalError(\"externalReaderFailure\").withCause(e).build();\n    }\n  }\n}\n","sourceCodeStart":89,"sourceCodeEnd":113,"githubUrl":"https://github.com/apple/pkl/blob/f3efcbfc9b60d30053b0536d664948d7aa1b8673/pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ImportGlobNode.java#L89-L113","documentation":"Pkl throws this when the glob pattern in a glob import is not a valid glob expression. GlobResolver raises InvalidGlobPatternException (e.g. unbalanced brackets, invalid escape sequences) and Pkl reports the offending pattern with the exception message as a hint.","triggerScenarios":"Writing `import \"**[.pkl\" as x*` or any pattern with malformed syntax: unmatched `[`/`]`, trailing backslash, unsupported wildcard combinations.","commonSituations":"Hand-editing glob patterns and leaving an unclosed character class; copying patterns from tools with different glob dialects (e.g. Windows or npm-style globs with unsupported syntax).","solutions":["Read the hint for the exact syntax problem and fix the pattern (close brackets, remove bad escapes).","Use only supported glob syntax: `*`, `**`, `?`, and character classes like [a-z].","Test the pattern against expected file names incrementally.","If migrating from another glob dialect, rewrite the pattern in Pkl's glob syntax."],"exampleFix":"// before\nimport \"src/**[[a-z].pkl\" as mods*\n// after\nimport \"src/**/[a-z]*.pkl\" as mods*","handlingStrategy":"validation","validationCode":"// Validate the glob pattern before writing it into an import:\n//   balanced [ ] pairs, no trailing backslash, only * ** ? [a-z] constructs\n// e.g. host-side: pattern.matches(\"[^\\\\[\\\\]]*(\\\\[[^\\\\]]*\\\\])?[^\\\\[\\\\]]*\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Test glob patterns against expected filenames before committing them.","Close all character classes; avoid escapes unsupported by Pkl's glob dialect.","Translate patterns from other glob dialects carefully (npm/bash globs differ)."],"tags":["glob","pattern","import","syntax","pkl"],"backgroundTag":"invalid-regex-pattern","analyzedSha":"f3efcbfc9b60d30053b0536d664948d7aa1b8673","analyzedAt":"2026-09-08T13:10:45.570Z","contentChangedAt":"2026-09-08T13:10:45.570Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}