{"record":{"id":"a296a345f1f333e5","repo":"nodejs/node","slug":"missing-property-s-if-you-see-this-error-in-t","errorCode":null,"errorMessage":"\nMissing property '%s'. If you see this error in testing, you might need\nto add the property to tools/testrunner/testdata/v8_build_config.json. If\nyou see this error in production, ensure to add the property to the\nv8_dump_build_config action in V8's top-level BUILD.gn file.\n","messagePattern":"\nMissing property '(.+?)'\\. If you see this error in testing, you might need\nto add the property to tools/testrunner/testdata/v8_build_config\\.json\\. If\nyou see this error in production, ensure to add the property to the\nv8_dump_build_config action in V8's top-level BUILD\\.gn file\\.\n","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"deps/v8/tools/testrunner/build_config.py","lineNumber":55,"sourceCode":"    for key, value in build_config.items():\n      setattr(self, key, value)\n\n    self.keys = list(build_config.keys())\n\n    bool_options = [key for key, value in self.items() if value is True]\n    string_options = [\n      f'{key}=\"{value}\"'\n      for key, value in self.items() if value and isinstance(value, str)]\n    self._str_rep = ', '.join(sorted(bool_options + string_options))\n\n  def items(self):\n    for key in self.keys:\n      yield key, getattr(self, key)\n\n  def ensure_vars(self, build_vars):\n    for var in build_vars:\n      if var not in self.keys:\n        raise Exception(INITIALIZATION_ERROR % var)\n\n  def timeout_scalefactor(self, initial_factor):\n    \"\"\"Increases timeout for slow build configurations.\"\"\"\n    result = initial_factor\n    for key, value in SCALE_FACTOR.items():\n      try:\n        if getattr(self, key):\n          result *= value\n      except AttributeError:\n        raise Exception(INITIALIZATION_ERROR % key)\n    if self.arch in SLOW_ARCHS:\n      result *= 4.5\n    return result\n\n  def __str__(self):\n    return self._str_rep\n","sourceCodeStart":37,"sourceCodeEnd":72,"githubUrl":"https://github.com/nodejs/node/blob/1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e/deps/v8/tools/testrunner/build_config.py#L37-L72","documentation":"Raised by BuildConfig.ensure_vars in deps/v8/tools/testrunner/build_config.py when a required build variable name is not present in the BuildConfig keys list (i.e. not loaded from the generated v8_build_config.json). The message points you to add the property either to the test fixture (tools/testrunner/testdata/v8_build_config.json) for tests or to the v8_dump_build_config GN action in the top-level BUILD.gn for production builds.","triggerScenarios":"Code calls BuildConfig.ensure_vars([...]) with a var name that was never declared as a BuildConfig key. This happens when a new build-config consumer requests a variable that the build system hasn't been taught to dump yet.","commonSituations":"Adding a new test or perf feature that depends on a fresh GN variable (e.g. v8_enable_sandbox, v8_enable_maglev) but forgetting to register it in the build-config dump step; running tests against a stale build where v8_build_config.json is out of date.","solutions":["In production: add the missing property to the v8_dump_build_config action in deps/v8/BUILD.gn so GN writes it to v8_build_config.json, then rebuild.","In tests: add the property to tools/testrunner/testdata/v8_build_config.json so the test fixture has it.","Regenerate the build (gn gen + ninja) so the build-config JSON is refreshed before running tests."],"exampleFix":"null","handlingStrategy":"validation","validationCode":"def ensure_build_vars_present(build_config, required):\n    missing = [v for v in required if v not in build_config.keys]\n    if missing:\n        raise ValueError(f'Add missing build vars to BUILD.gn / v8_build_config.json: {missing}')","typeGuard":"def has_all_vars(build_config, required) -> bool:\n    return all(v in build_config.keys for v in required)","tryCatchPattern":"null","preventionTips":["When you add a build-config consumer, register the var in the v8_dump_build_config GN action immediately.","Keep tools/testrunner/testdata/v8_build_config.json in sync with production keys.","Regenerate the build (gn gen + ninja) after editing BUILD.gn before running tests."],"tags":["v8","testrunner","build-config","gn","configuration"],"backgroundTag":null,"analyzedSha":"1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e","analyzedAt":"2026-08-13T00:53:24.642Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}