nodejs/node · error · MBErr

isolate map file not found at %s

Error message

isolate map file not found at %s

What it means

ReadIsolateMap() iterates the -i isolate map files (default infra/mb/gn_isolate_map.pyl). For each, if self.Exists(f) is false, it raises MBErr('isolate map file not found at %s'). This is the missing-file guard for isolate map inputs, checked before any parsing.

Source

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

    try:
      contents = ast.literal_eval(self.ReadFile(self.args.config_file))
    except SyntaxError as e:
      raise MBErr('Failed to parse config file "%s": %s' %
                 (self.args.config_file, e)) from e

    self.configs = contents['configs']
    self.luci_tryservers = contents.get('luci_tryservers', {})
    self.builder_groups = contents['builder_groups']
    self.mixins = contents['mixins']

  def ReadIsolateMap(self):
    if not self.args.isolate_map_files:
      self.args.isolate_map_files = [self.default_isolate_map]

    for f in self.args.isolate_map_files:
      if not self.Exists(f):
        raise MBErr('isolate map file not found at %s' % f)
    isolate_maps = {}
    for isolate_map in self.args.isolate_map_files:
      try:
        isolate_map = ast.literal_eval(self.ReadFile(isolate_map))
        duplicates = set(isolate_map).intersection(isolate_maps)
        if duplicates:
          raise MBErr(
              'Duplicate targets in isolate map files: %s.' %
              ', '.join(duplicates))
        isolate_maps.update(isolate_map)
      except SyntaxError as e:
        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:

View on GitHub (pinned to 1b2de5e052)

Solutions

  1. Check each -i path exists: `ls <path>`; correct typos or supply the right absolute path.
  2. Run mb.py from the source root so the default infra/mb/gn_isolate_map.pyl resolves.
  3. Restore the file via `gclient sync` if it's absent from the checkout.

Example fix

// before
  mb.py gen -i infra/mb/gn_isolatemap.pyl ...
// after
  mb.py gen -i infra/mb/gn_isolate_map.pyl ...
Defensive patterns

Strategy: validation

Validate before calling

import os
for f in isolate_map_files:
    if not os.path.isfile(f):
        sys.exit(f'isolate map file not found at {f}')

Type guard

null

Try / catch

null

Prevention

When it happens

Trigger: Running an mb.py subcommand that needs isolate info (gen with isolates, analyze) when an -i path (or the default gn_isolate_map.pyl) does not exist on disk. Exists() returns false and MBErr fires.

Common situations: Passing -i with a typo'd path; the default gn_isolate_map.pyl missing from a shallow/partial checkout; running from the wrong cwd so the relative default doesn't resolve.

Related errors


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