{"record":{"id":"9e10e8b32704127f","repo":"headroomlabs-ai/headroom","slug":"headroom-openclaw-default-register-must-match-regi","errorCode":null,"errorMessage":"headroom-openclaw default.register must match registerHeadroomPlugin","messagePattern":"headroom-openclaw default\\.register must match registerHeadroomPlugin","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"scripts/verify_npm_release_assets.mjs","lineNumber":92,"sourceCode":"  }\n\n  return spawnSync(\"npm\", args, {\n    cwd,\n    encoding: \"utf8\",\n  });\n}\n\nfunction assertOpenClawExtensionContract(cwd) {\n  const smoke = `\n    const mod = await import(\"headroom-openclaw\");\n    if (typeof mod.default?.register !== \"function\") {\n      throw new Error(\"headroom-openclaw default export must expose register(api)\");\n    }\n    if (typeof mod.registerHeadroomPlugin !== \"function\") {\n      throw new Error(\"headroom-openclaw must export registerHeadroomPlugin(api)\");\n    }\n    if (mod.default.register !== mod.registerHeadroomPlugin) {\n      throw new Error(\"headroom-openclaw default.register must match registerHeadroomPlugin\");\n    }\n  `;\n  const result = spawnSync(process.execPath, [\"--input-type=module\", \"-e\", smoke], {\n    cwd,\n    encoding: \"utf8\",\n  });\n  if (result.status !== 0) {\n    throw new Error(\n      `headroom-openclaw import smoke failed: ${\n        result.error?.message || result.stderr || result.stdout || \"unknown error\"\n      }`,\n    );\n  }\n}\n\nfor (const expected of packages) {\n  const tarballPath = path.join(assetsDir, expected.tarball);\n  tarballPaths.set(expected.name, tarballPath);","sourceCodeStart":74,"sourceCodeEnd":110,"githubUrl":"https://github.com/headroomlabs-ai/headroom/blob/322425c43bffde1ed0b64fecf3cf5951565dd82b/scripts/verify_npm_release_assets.mjs#L74-L110","documentation":"Error \"headroom-openclaw default.register must match registerHeadroomPlugin\" thrown in headroomlabs-ai/headroom.","triggerScenarios":"Raised by the npm release verifier when default.register and the named registerHeadroomPlugin export are different functions, indicating a packaging inconsistency.","commonSituations":"See trigger scenarios.","solutions":["Make the default export's register property reference the same function as the named registerHeadroomPlugin export","Check for duplicate/mismatched definitions introduced during bundling"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"322425c43bffde1ed0b64fecf3cf5951565dd82b","analyzedAt":"2026-08-15T01:03:05.481Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}