{"record":{"id":"eb9a74789be5debd","repo":"apple/pkl","slug":"externalreaderfailure-eb9a74","errorCode":"externalReaderFailure","errorMessage":"externalReaderFailure","messagePattern":"externalReaderFailure","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ReadGlobNode.java","lineNumber":109,"sourceCode":"              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      cachedResults.put(globPattern, cachedResult);\n      return cachedResult;\n    } catch (IOException e) {\n      throw exceptionBuilder().evalError(\"ioErrorResolvingGlob\", globPattern).withCause(e).build();\n    } catch (SecurityManagerException | HttpClientException | URISyntaxException e) {\n      throw exceptionBuilder().withCause(e).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":91,"sourceCodeEnd":113,"githubUrl":"https://github.com/apple/pkl/blob/f3efcbfc9b60d30053b0536d664948d7aa1b8673/pkl-core/src/main/java/org/pkl/core/ast/expression/unary/ReadGlobNode.java#L91-L113","documentation":"Thrown when a globbed read must be resolved via an external reader process and that process fails, mirroring the import-glob case. The ExternalReaderProcessException is attached as the cause; the glob pattern itself is fine.","triggerScenarios":"Calling `read*(\"ext://.../*.x\")` for a scheme handled by an external reader whose process fails to start or errors during glob listing in ReadGlobNode.read.","commonSituations":"External reader executable missing or crashing, misconfigured pkl.execution.externalReaders, reader incompatible with glob listing.","solutions":["Inspect the cause to determine how the external reader process failed.","Run the reader executable manually with sample input to reproduce the failure.","Fix the externalReaders configuration (command path/args) in the project settings.","Fall back to explicit individual reads for that scheme."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// verify reader handles glob listing requests before relying on read*","typeGuard":null,"tryCatchPattern":"try {\n  readGlob('ext://...')\n} catch (e) {\n  if (e.code === 'externalReaderFailure') {\n    // check e.cause; repair reader config or list resources explicitly\n  }\n  throw e\n}","preventionTips":["Confirm the external reader supports listing/glob requests","Validate the reader command path and args in project config","Monitor reader process health in CI"],"tags":["external-reader","glob","process"],"backgroundTag":"process-launch-failed","analyzedSha":"f3efcbfc9b60d30053b0536d664948d7aa1b8673","analyzedAt":"2026-09-08T13:10:45.570Z","contentChangedAt":"2026-09-08T13:10:45.570Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}