{"record":{"id":"2894791ddeddc957","repo":"apple/pkl","slug":"nomoduleloaderregistered","errorCode":"noModuleLoaderRegistered","errorMessage":"noModuleLoaderRegistered","messagePattern":"noModuleLoaderRegistered","errorType":"error_code","errorClass":"VmException","httpStatus":null,"severity":"error","filePath":"pkl-core/src/main/java/org/pkl/core/runtime/ModuleResolver.java","lineNumber":103,"sourceCode":"            .withHint(e.getReason())\n            .build();\n      } catch (ExternalReaderProcessException e) {\n        throw new VmExceptionBuilder()\n            .withOptionalLocation(importNode)\n            .evalError(\"externalReaderFailure\")\n            .withCause(e)\n            .build();\n      } catch (IOException e) {\n        throw new VmExceptionBuilder()\n            .withOptionalLocation(importNode)\n            .evalError(\"ioErrorLoadingModule\")\n            .withCause(e)\n            .build();\n      }\n      if (key.isPresent()) return key.get();\n    }\n\n    throw new VmExceptionBuilder()\n        .evalError(\"noModuleLoaderRegistered\", moduleUri)\n        .withOptionalLocation(importNode)\n        .build();\n  }\n}\n","sourceCodeStart":85,"sourceCodeEnd":109,"githubUrl":"https://github.com/apple/pkl/blob/f3efcbfc9b60d30053b0536d664948d7aa1b8673/pkl-core/src/main/java/org/pkl/core/runtime/ModuleResolver.java#L85-L109","documentation":"After trying every registered ModuleKey factory, if none accepted the module URI, ModuleResolver throws eval error 'noModuleLoaderRegistered' naming the URI. It means no loader supports the URI's scheme.","triggerScenarios":"resolve() called with a URI whose scheme matches no registered module loader (factories all return Optional.empty()), e.g. 'ftp://...' or a typo'd custom scheme.","commonSituations":"Typos in import URIs ('fle:///x.pkl' instead of 'file://'), using a scheme that requires a dependency/extension not registered, custom module loaders not installed in embedded use.","solutions":["Fix the URI scheme typo in the import statement (file:, https:, projectpackage:, etc.).","If using a custom scheme, register the corresponding ModuleKey factory with the evaluator before evaluation.","Verify project dependencies are resolved so 'projectpackage:' URIs are usable."],"exampleFix":"// before\nimport \"webcache://example.com/x.pkl\"\n// after\nimport \"https://example.com/x.pkl\"","handlingStrategy":"validation","validationCode":"java.util.Set<String> supported = java.util.Set.of(\"file\", \"https\", \"http\", \"modulepath\", \"projectpackage\", \"repl\");\nif (!supported.contains(moduleUri.getScheme())) { /* reject or register a loader */ }","typeGuard":null,"tryCatchPattern":"catch (VmException e) { if (\"noModuleLoaderRegistered\".equals(e.getCode())) { /* report unsupported scheme to user */ } }","preventionTips":["Only use schemes matching a registered module loader.","In embedded usage, register custom ModuleKey factories before evaluation."],"tags":["module-resolution","scheme","configuration"],"backgroundTag":"missing-dependency","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"}