nodejs/node · error · MBErr

Builder groups name "%s" not found in "%s"

Error message

Builder groups name "%s" not found in "%s"

What it means

After selecting by -m/--builder-group and -b/--builder, ConfigFromArgs() checks `self.args.builder_group in self.builder_groups` (loaded from mb_config.pyl). If the group name is not a key in builder_groups, it raises MBErr('Builder groups name "%s" not found in "%s"').

Source

Thrown at deps/v8/tools/mb/mb.py:609

        raise MBErr('Failed to parse isolate map file "%s": %s' %
                    (isolate_map, e)) from e
    return isolate_maps

  def ConfigFromArgs(self):
    if self.args.config:
      if self.args.builder_group or self.args.builder:
        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))

View on GitHub (pinned to 1b2de5e052)

Solutions

  1. List valid builder_groups keys in mb_config.pyl (`grep -A30 'builder_groups' infra/mb/mb_config.pyl`) and use the exact name.
  2. Ensure -f points at the mb_config.pyl that actually defines your group (V8 vs Chromium).
  3. Add the missing group to builder_groups if it should exist.

Example fix

// before
  mb.py gen -m tryserver.v8.linux -b "V8 Linux" out/Default   // group typo
// after
  mb.py gen -m tryserver.v8 -b "V8 Linux" out/Default          // real key
Defensive patterns

Strategy: validation

Validate before calling

builder_groups = ast.literal_eval(open(mb_config_path).read())['builder_groups']
if args.builder_group not in builder_groups:
    sys.exit(f'builder group {args.builder_group!r} not in {mb_config_path}; valid: {sorted(builder_groups)}')

Type guard

null

Try / catch

null

Prevention

When it happens

Trigger: Running `mb.py gen -m <wrong-group> -b <builder>` where <wrong-group> is not a key in the builder_groups section of mb_config.pyl. The membership test fails.

Common situations: Misspelled or renamed builder group; group exists only on another branch; pointing -f at a config file that doesn't define that group; using a Chromium group name in a V8-only config.

Related errors


AI-assisted analysis of nodejs/node@1b2de5e052 (2026-08-13). Data as JSON: /api/errors/8cb5abfe005e1c79. Report an issue: GitHub.