pentaho/pentaho-kettle · error · ArgumentInvalidError
Module with id ' ' provides no specification.
Error message
Module with id '{id}' provides no specification. What it means
pentaho.lang.ArgumentInvalidError thrown by prepareModule when a moduleSpecMap entry exists under a valid id but its specification value is falsy (null, undefined, empty). Each module id must map to a non-empty specification object.
Solutions
- Provide a non-empty specification object for every module id in the map.
- Remove entries whose specs are not yet defined.
- Validate the spec map before passing it to configuration.
Example fix
// before
{"pentaho/visual/impl/bar": null}
// after
{"pentaho/visual/impl/bar": {"type": "pentaho/type/complex"}} Defensive patterns
Strategy: validation
Validate before calling
Object.keys(moduleSpecMap).forEach(function(k) {
if(!moduleSpecMap[k]) throw new Error("module '" + k + "' has empty spec");
}); Type guard
function allSpecsPresent(map) { return Object.keys(map).every(function(k) { return !!map[k]; }); } Try / catch
try { metaService.__configure(map); } catch(e) { if(/provides no specification/.test(e.message)) { console.error("missing spec entry", e.message); } else { throw e; } } Prevention
- Remove placeholder null entries from config
- Use schema validation on module config files before load
When it happens
Trigger: Passing {"my/module": null} or {"my/module": undefined} in a moduleSpecMap to MetaService configuration.
Common situations: Config file where a module entry was left empty; a variable holding the spec was undefined; YAML/JSON config converted with null values for placeholder entries.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- Module map contains an empty module identifier.
- A module with id ' ' is not defined.
- A module with the id or alias
- ERROR_INVALID_ARGUMENT
- Expected module with id or alias
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/513b01b02ded95a1.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/core-ui/src/main/resources/app/pentaho/_core/module/MetaService.js:92
preparedModuleIdList.forEach(function(id) {
moduleResolver(id);
});
return this;
// ---
// 1. Perform basic validation and index by id and alias.
function prepareModule(moduleSpec, id) {
if(!id) {
throw new ArgumentInvalidError(
"moduleSpecMap",
"Module map contains an empty module identifier.");
}
if(!moduleSpec) {
throw new ArgumentInvalidError(
"moduleSpecMap",
"Module with id '" + id + "' provides no specification.");
}
// ---
var module = this.__get(id);
if(module !== null) {
module.__configure(moduleSpec);
} else {
if(O.hasOwn(preparedModuleSpecMap, id)) {
throw new ArgumentInvalidError(
"moduleSpecMap",
"A module with the id or alias '" + id + "' is already being defined.");
}
moduleSpec = Object.create(moduleSpec);View on GitHub (pinned to f3058517a1)