nodejs/node · error · Exception

No V8 inspector protocol revision found

Error message

No V8 inspector protocol revision found

What it means

To know which upstream inspector_protocol commit to check out, roll.py reads the V8-pinned revision from <node_src>/deps/v8/third_party/inspector_protocol/README.v8, scanning for a line beginning with the prefix 'Revision: '. If no such line exists it cannot determine the target revision and aborts.

Source

Thrown at tools/inspector_protocol/roll.py:77

  for f in FILES_TO_SYNC:
    files += glob.glob(os.path.join(path, f))
  files = [os.path.relpath(f, path) for f in files]
  return files


def FilesAreEqual(path1, path2):
  # We check for permissions (useful for executable scripts) and contents.
  return (os.stat(path1).st_mode == os.stat(path2).st_mode and
          open(path1).read() == open(path2).read())


def ReadV8IPRevision(node_src_path):
  lines = open(os.path.join(node_src_path, 'deps/v8/third_party/inspector_protocol/README.v8')).readlines()
  for line in lines:
    line = line.strip()
    if line.startswith(REVISION_LINE_PREFIX):
      return line[len(REVISION_LINE_PREFIX):]
  raise Exception('No V8 inspector protocol revision found')


def ReadNodeIPRevision(node_src_path):
  lines = open(os.path.join(node_src_path, 'deps/inspector_protocol/README.node')).readlines()
  for line in lines:
    line = line.strip()
    if line.startswith(REVISION_LINE_PREFIX):
      return line[len(REVISION_LINE_PREFIX):]
  raise Exception('No Node inspector protocol revision found')


def CheckoutRevision(path, revision):
  os.chdir(path)
  return RunCmd(['git', 'checkout', revision])


def GetHeadRevision(path):
  os.chdir(path)

View on GitHub (pinned to 1b2de5e052)

Solutions

  1. Confirm deps/v8/third_party/inspector_protocol/README.v8 exists and contains a line like 'Revision: <commit-hash>'.
  2. Restore the file from git: `git -C <node_src> checkout HEAD -- deps/v8/third_party/inspector_protocol/README.v8`.
  3. Point --node_src_downstream at a complete node checkout that has the file.
Defensive patterns

Strategy: validation

Validate before calling

import os
p=os.path.join(node_src,'deps/v8/third_party/inspector_protocol/README.v8')
assert os.path.isfile(p), 'README.v8 missing'
assert any(l.lstrip().startswith('Revision: ') for l in open(p)), 'no Revision: line'

Prevention

When it happens

Trigger: README.v8 is missing, renamed, reformatted, or its 'Revision: ' marker line was removed/edited in the downstream node tree.

Common situations: An older/newer node layout where the file moved; someone manually edited README.v8; the v8 third_party inspector_protocol dir was deleted; pointing --node_src_downstream at a partial checkout.

Related errors


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