nodejs/node · error · MBErr
Builder name "%s" not found under builder_groups[%s] in "%s
Error message
Builder name "%s" not found under builder_groups[%s] in "%s"
What it means
ConfigFromArgs() resolves the builder inside the chosen group via _v8_builder_fallback(), which tolerates ' - builder'/' builder' suffixes. If neither the exact builder name nor the suffix-stripped form is found in builder_groups[group], the fallback returns None and mb raises MBErr('Builder name "%s" not found under builder_groups[%s] in "%s"') (note the double space in the source).
Source
Thrown at deps/v8/tools/mb/mb.py:616
raise MBErr(
'Can not specific both -c/--config and -m/--builder-group or '
'-b/--builder')
return self.args.config
if not self.args.builder_group or not self.args.builder:
raise MBErr('Must specify either -c/--config or '
'(-m/--builder-group and -b/--builder)')
if not self.args.builder_group in self.builder_groups:
raise MBErr('Builder groups name "%s" not found in "%s"' %
(self.args.builder_group, self.args.config_file))
config = _v8_builder_fallback(
self.args.builder, self.builder_groups[self.args.builder_group])
if not config:
raise MBErr(
'Builder name "%s" not found under builder_groups[%s] in "%s"' %
(self.args.builder, self.args.builder_group, self.args.config_file))
if isinstance(config, dict):
if self.args.phase is None:
raise MBErr('Must specify a build --phase for %s on %s' %
(self.args.builder, self.args.builder_group))
phase = str(self.args.phase)
if phase not in config:
raise MBErr('Phase %s doesn\'t exist for %s on %s' %
(phase, self.args.builder, self.args.builder_group))
return config[phase]
if self.args.phase is not None:
raise MBErr('Must not specify a build --phase for %s on %s' %
(self.args.builder, self.args.builder_group))
return config
View on GitHub (pinned to 1b2de5e052)
Solutions
- Inspect builder_groups[<group>] in mb_config.pyl and use an exact builder key, or the ' builder'/' - builder' variant the fallback recognizes.
- If the builder was split into builder/tester, use the new '- builder' name.
- Add the missing builder entry to builder_groups if it should exist on this branch.
Example fix
// before mb.py gen -m tryserver.v8 -b "V8 Linux64" out/Default // not a key // after mb.py gen -m tryserver.v8 -b "V8 Linux64 - builder" out/Default
Defensive patterns
Strategy: validation
Validate before calling
group = builder_groups[args.builder_group]
candidates = [args.builder]
if args.builder.endswith(' - builder'): candidates.append(args.builder[:-len(' - builder')])
elif args.builder.endswith(' builder'): candidates.append(args.builder[:-len(' builder')])
if not any(c in group for c in candidates):
sys.exit(f'builder {args.builder!r} not in group; valid: {sorted(group)}') Type guard
null
Try / catch
null
Prevention
- Inspect builder_groups[<group>] keys for exact builder names.
- For split builders, use the '- builder' suffix form.
- Re-sync mb_config.pyl after builder/tester splits so names match the current branch.
When it happens
Trigger: Running `mb.py gen -m <group> -b <wrong-builder>` where <wrong-builder> is not a key in builder_groups[<group>] and does not match after stripping ' builder'/' - builder'. _v8_builder_fallback returns None.
Common situations: Misspelled builder name; builder renamed/removed in mb_config.pyl; using a tester name where only a builder is defined (or vice versa); pointing at the wrong branch's config.
Related errors
- Config "%s" not found in %s
- Builder groups name "%s" not found in "%s"
- Must specify a build --phase for %s on %s
- unrecognized platform string "%s"
- mb config file %s has problems:
AI-assisted analysis of nodejs/node@1b2de5e052 (2026-08-13).
Data as JSON: /api/errors/2aa6890eff6fe339.
Report an issue: GitHub.