nodejs/node · error · MBErr
Cannot generate isolate for %s since it is an additional_com
Error message
Cannot generate isolate for %s since it is an additional_compile_target.
What it means
MB's isolate_map contract reserves type 'additional_compile_target' for compile-only targets (not runnable tests), so it refuses to generate isolates for them. There is a deliberate carve-out for the legacy 'official_tests' name only.
Source
Thrown at deps/v8/tools/mb/mb.py:858
android = 'target_os="android"' in vals['gn_args']
ios = 'target_os="ios"' in vals['gn_args']
fuchsia = 'target_os="fuchsia"' in vals['gn_args']
win = self.platform == 'win32' or 'target_os="win"' in vals['gn_args']
possible_runtime_deps_rpaths = {}
for target in ninja_targets:
target_type = isolate_map[target]['type']
label = isolate_map[target]['label']
target_runtime_deps = 'obj/%s.runtime_deps' % label.replace(':', '/')
stamp_runtime_deps = 'obj/%s.stamp.runtime_deps' % label.replace(':', '/')
# TODO(crbug.com/40590196): 'official_tests' use
# type='additional_compile_target' to isolate tests. This is not the
# intended use for 'additional_compile_target'.
if (target_type == 'additional_compile_target' and
target != 'official_tests'):
# By definition, additional_compile_targets are not tests, so we
# shouldn't generate isolates for them.
raise MBErr('Cannot generate isolate for %s since it is an '
'additional_compile_target.' % target)
if fuchsia or ios or target_type == 'generated_script':
# iOS and Fuchsia targets end up as groups.
# generated_script targets are always actions.
rpaths = [stamp_runtime_deps, target_runtime_deps]
elif android:
# Android targets may be either android_apk or executable. The former
# will result in runtime_deps associated with the stamp file, while the
# latter will result in runtime_deps associated with the executable.
label = isolate_map[target]['label']
rpaths = [
target + '.runtime_deps', stamp_runtime_deps, target_runtime_deps
]
elif (target_type == 'script' or
isolate_map[target].get('label_type') == 'group'):
# For script targets, the build target is usually a group,
# for which gn generates the runtime_deps next to the stamp file
# for the label, which lives under the obj/ directory, but it mayView on GitHub (pinned to 1b2de5e052)
Solutions
- Set the correct isolate_map type for the target (e.g. 'executable', 'gtest_test', 'android_apk').
- Do not run isolate on additional_compile_targets.
- If you intentionally need the official_tests legacy pattern, name the target exactly 'official_tests'.
Example fix
// before
// isolate_map.pyl: '<target>': {'type': 'additional_compile_target', ...}
// after
// '<target>': {'type': 'gtest_test', ...} Defensive patterns
Strategy: validation
Validate before calling
isolate_map = load_isolate_map()
t = isolate_map[target]['type']
assert t != 'additional_compile_target' or target == 'official_tests', (
f"{target!r} is additional_compile_target; cannot isolate") Prevention
- Tag test targets with their real type in isolate_map.
- Don't drive isolate steps against compile-only targets.
When it happens
Trigger: Running `mb.py isolate --target <T>` (or an isolate-producing subcommand) where isolate_map[T]['type'] == 'additional_compile_target' and T != 'official_tests'.
Common situations: A test target was mislabeled as additional_compile_target; running isolate against a build-only target; new test target missing a proper type in isolate_map.
Related errors
- Phase %s doesn't exist for %s on %s
- Must not specify a build --phase for %s on %s
- Unknown mixin "%s"
- args_file specified multiple times in mixins for %s on %s
- did not generate any of %s
AI-assisted analysis of nodejs/node@1b2de5e052 (2026-08-13).
Data as JSON: /api/errors/02efad8e1f5bffb1.
Report an issue: GitHub.