{"record":{"id":"36238c2bffc77fd0","repo":"nodejs/node","slug":"no-v8-inspector-protocol-revision-found","errorCode":null,"errorMessage":"No V8 inspector protocol revision found","messagePattern":"No V8 inspector protocol revision found","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"tools/inspector_protocol/roll.py","lineNumber":77,"sourceCode":"  for f in FILES_TO_SYNC:\n    files += glob.glob(os.path.join(path, f))\n  files = [os.path.relpath(f, path) for f in files]\n  return files\n\n\ndef FilesAreEqual(path1, path2):\n  # We check for permissions (useful for executable scripts) and contents.\n  return (os.stat(path1).st_mode == os.stat(path2).st_mode and\n          open(path1).read() == open(path2).read())\n\n\ndef ReadV8IPRevision(node_src_path):\n  lines = open(os.path.join(node_src_path, 'deps/v8/third_party/inspector_protocol/README.v8')).readlines()\n  for line in lines:\n    line = line.strip()\n    if line.startswith(REVISION_LINE_PREFIX):\n      return line[len(REVISION_LINE_PREFIX):]\n  raise Exception('No V8 inspector protocol revision found')\n\n\ndef ReadNodeIPRevision(node_src_path):\n  lines = open(os.path.join(node_src_path, 'deps/inspector_protocol/README.node')).readlines()\n  for line in lines:\n    line = line.strip()\n    if line.startswith(REVISION_LINE_PREFIX):\n      return line[len(REVISION_LINE_PREFIX):]\n  raise Exception('No Node inspector protocol revision found')\n\n\ndef CheckoutRevision(path, revision):\n  os.chdir(path)\n  return RunCmd(['git', 'checkout', revision])\n\n\ndef GetHeadRevision(path):\n  os.chdir(path)","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/nodejs/node/blob/1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e/tools/inspector_protocol/roll.py#L59-L95","documentation":"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.","triggerScenarios":"README.v8 is missing, renamed, reformatted, or its 'Revision: ' marker line was removed/edited in the downstream node tree.","commonSituations":"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.","solutions":["Confirm deps/v8/third_party/inspector_protocol/README.v8 exists and contains a line like 'Revision: <commit-hash>'.","Restore the file from git: `git -C <node_src> checkout HEAD -- deps/v8/third_party/inspector_protocol/README.v8`.","Point --node_src_downstream at a complete node checkout that has the file."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"import os\np=os.path.join(node_src,'deps/v8/third_party/inspector_protocol/README.v8')\nassert os.path.isfile(p), 'README.v8 missing'\nassert any(l.lstrip().startswith('Revision: ') for l in open(p)), 'no Revision: line'","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Do not hand-edit README.v8; treat the deps tree as generated.","Run roll.py against an unmodified, complete node checkout."],"tags":["inspector-protocol","roll","v8","configuration"],"backgroundTag":null,"analyzedSha":"1b2de5e052fc0fb95fd7fb6846dcec4ade598e9e","analyzedAt":"2026-08-13T00:53:24.642Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}