nodejs/node · error · MBErr

did not generate any of %s

Error message

did not generate any of %s

What it means

MB runs GN gen + ninja to produce a `<target>.runtime_deps` file (or platform variants like `.exe.runtime_deps` or `obj/<label>.runtime_deps`) listing the files needed to isolate a test. If none of the candidate runtime_deps files exist after the build, MB cannot write isolate files.

Source

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

        label = isolate_map[target]['label']
        runtime_deps_targets = [
            'obj/%s.runtime_deps' % label.replace(':', '/'),
            'obj/%s.stamp.runtime_deps' % label.replace(':', '/')]
        if self.platform == 'win32':
          runtime_deps_targets += [ target + '.exe.runtime_deps' ]
        else:
          runtime_deps_targets += [ target + '.runtime_deps' ]
      elif self.platform == 'win32':
        runtime_deps_targets = [target + '.exe.runtime_deps']
      else:
        runtime_deps_targets = [target + '.runtime_deps']

      for r in runtime_deps_targets:
        runtime_deps_path = self.ToAbsPath(build_dir, r)
        if self.Exists(runtime_deps_path):
          break
      else:
        raise MBErr('did not generate any of %s' %
                    ', '.join(runtime_deps_targets))

      runtime_deps = self.ReadFile(runtime_deps_path).splitlines()

      self.WriteIsolateFiles(build_dir, target, runtime_deps)

    return 0

  def RunGNIsolate(self):
    target = self.args.target[0]
    isolate_map = self.ReadIsolateMap()
    err, labels = self.MapTargetsToLabels(isolate_map, [target])
    if err:
      raise MBErr(err)
    label = labels[0]

    build_dir = self.args.path[0]

View on GitHub (pinned to 1b2de5e052)

Solutions

  1. Run `mb.py gen` and then ninja-build the exact target in the same build dir before isolate.
  2. Verify the --target label resolves to the runtime_deps path MB is searching for.
  3. Wipe and regenerate the build dir to rule out stale state.
  4. Re-check the ninja build log to confirm it completed without error.
Defensive patterns

Strategy: validation

Validate before calling

# Before calling mb.py isolate, confirm ninja produced runtime_deps.
import os
candidates = [
    os.path.join(build_dir, 'obj', label.replace(':', '/') + '.runtime_deps'),
    os.path.join(build_dir, target + '.runtime_deps'),
]
assert any(os.path.exists(p) for p in candidates), (
    f"no runtime_deps produced; build target {target!r} first")

Prevention

When it happens

Trigger: Calling `mb.py isolate` (or a recipe step that drives it) against a build dir where ninja never produced the expected runtime_deps file for the target.

Common situations: Build dir never actually built; target name/label mismatch; stale or partially-populated build dir; ninja failed silently upstream; platform-specific path differences (win32 vs android vs posix).

Related errors


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