nodejs/node · error · Exception
Only one of the --v8-enable-temporal-support or --v8-disable
Error message
Only one of the --v8-enable-temporal-support or --v8-disable-temporal-support options can be specified at a time.
What it means
configure.py forbids passing both --v8-enable-temporal-support and --v8-disable-temporal-support. These toggle the TC39 Temporal proposal support inside V8 and, like the object-print pair, are validated by a raw sys.argv membership scan rather than an argparse mutex group.
Source
Thrown at configure.py:2264
if pkg_libs and pkg_libpath:
output['libraries'] += [pkg_libpath] + pkg_libs.split()
if pkg_cflags:
output['include_dirs'] += [flag for flag in [flag.strip() for flag in pkg_cflags.split('-I')] if flag]
if options.static_zoslib_gyp:
o['variables']['static_zoslib_gyp'] = options.static_zoslib_gyp
if flavor != 'linux' and options.v8_enable_hugepage:
raise Exception('--v8-enable-hugepage is supported only on linux.')
o['variables']['v8_enable_hugepage'] = 1 if options.v8_enable_hugepage else 0
if options.v8_enable_short_builtin_calls or o['variables']['target_arch'] == 'x64':
o['variables']['v8_enable_short_builtin_calls'] = 1
if options.v8_enable_snapshot_compression:
o['variables']['v8_enable_snapshot_compression'] = 1
if all(opt in sys.argv for opt in ['--v8-enable-object-print', '--v8-disable-object-print']):
raise Exception(
'Only one of the --v8-enable-object-print or --v8-disable-object-print options '
'can be specified at a time.')
if all(opt in sys.argv for opt in ['--v8-enable-temporal-support', '--v8-disable-temporal-support']):
raise Exception(
'Only one of the --v8-enable-temporal-support or --v8-disable-temporal-support options '
'can be specified at a time.')
if sys.platform != 'darwin':
if o['variables']['v8_enable_webassembly'] and o['variables']['target_arch'] == 'x64':
o['variables']['v8_enable_wasm_simd256_revec'] = 1
def configure_openssl(o):
variables = o['variables']
variables['node_use_openssl'] = b(not options.without_ssl)
variables['node_shared_openssl'] = b(options.shared_openssl)
variables['node_shared_ngtcp2'] = b(options.shared_ngtcp2)
variables['node_shared_nghttp3'] = b(options.shared_nghttp3)
variables['openssl_is_fips'] = b(options.openssl_is_fips)
variables['node_fipsinstall'] = b(False)
if options.openssl_no_asm:
variables['openssl_no_asm'] = 1
View on GitHub (pinned to 1b2de5e052)
Solutions
- Remove one of the two flags so only your intended Temporal state is expressed.
- Drive Temporal from a single variable in your build script and translate it to exactly one configure flag.
- Sanity-check argv for known toggle pairs before calling configure.py.
Example fix
// before ./configure --v8-enable-temporal-support --v8-disable-temporal-support // after ./configure --v8-disable-temporal-support
Defensive patterns
Strategy: validation
Validate before calling
import sys
pair = {'--v8-enable-temporal-support', '--v8-disable-temporal-support'}
assert not pair.issubset(sys.argv), 'pass only one of the temporal-support flags' Prevention
- Drive Temporal enablement from one config value and translate to a single flag.
- Lint configure argv for any enable/disable pair drawn from the same option name.
When it happens
Trigger: Raised when both 'v8-enable-temporal-support' and 'v8-disable-temporal-support' substrings are present in sys.argv via the `all(opt in sys.argv ...)` test.
Common situations: Preset files that appended an override without removing the default; build orchestration that layers a vendor patch enabling Temporal onto a base config that also disables it; flag drift across Node versions where defaults changed.
Related errors
- --enable-v8windbg is incompatible with --without-bundled-v8.
- Only one of the --v8-enable-object-print or --v8-disable-obj
- --v8-enable-hugepage is supported only on linux.
- --depfile requires --stamp and vice versa
- --depfile requires --stamp and vice versa
AI-assisted analysis of nodejs/node@1b2de5e052 (2026-08-13).
Data as JSON: /api/errors/45595b5729401558.
Report an issue: GitHub.