nodejs/node · error · Exception

No Node inspector protocol revision found

Error message

No Node inspector protocol revision found

What it means

roll.py reads the currently rolled inspector_protocol revision from <node_src>/deps/inspector_protocol/README.node (again via the 'Revision: ' prefix) to compare against V8's revision and decide whether a roll is needed. Missing the marker line aborts before any work is done.

Source

Thrown at tools/inspector_protocol/roll.py:86

          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)
  return RunCmd(['git', 'rev-parse', 'HEAD'])


def main(argv):
  parser = argparse.ArgumentParser(description=(
      "Rolls the inspector_protocol project (upstream) into node's "
      "deps/inspector_protocol (downstream)."))
  parser.add_argument("--ip_src_upstream",
                      help="The inspector_protocol (upstream) tree.",

View on GitHub (pinned to 1b2de5e052)

Solutions

  1. Ensure deps/inspector_protocol/README.node contains a 'Revision: <hash>' line.
  2. Restore it from git history: `git -C <node_src> log -- deps/inspector_protocol/README.node` then checkout that revision.
  3. Seed it manually with the current head revision (roll.py itself writes this line on success at line 161, so a one-time manual seed unblocks the first run).

Example fix

// seed the marker so the first roll can proceed
echo 'Revision: <current-ip-commit-hash>' > deps/inspector_protocol/README.node
Defensive patterns

Strategy: validation

Validate before calling

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

Prevention

When it happens

Trigger: deps/inspector_protocol/README.node is missing the 'Revision: ' line, was reformatted, or the file/dir is absent in the downstream node tree.

Common situations: A brand-new inspector_protocol downstream checkout never seeded with the marker; README.node manually rewritten; a partial or fresh node tree without deps/inspector_protocol populated.

Related errors


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