Problem
OpenClaw derives a plugin ID hint from the npm package name by stripping the scope: @apify/apify-openclaw-plugin → apify-openclaw-plugin. It then compares this against the ID declared in openclaw.plugin.json ("id": "apify") and the default export in src/index.ts (id: "apify"). Since they don't match, OpenClaw logs a warning on every config validation cycle:
plugins.entries.apify: plugin apify: plugin id mismatch (manifest uses "apify", entry hints "apify-openclaw-plugin")
This fires ~50 times per gateway boot and on every config reload, flooding gateway.err.log with hundreds of lines per day.
Suggested fix
Change "id" to "apify-openclaw-plugin" in both:
openclaw.plugin.json (line 2)
src/index.ts (line 6, the default export)
This aligns the plugin ID with what OpenClaw derives from the npm package name.
Alternatively, if you'd prefer to keep "apify" as the ID, renaming the npm package to @apify/apify would also resolve it — though that's a bigger change.
Environment
- OpenClaw v2026.3.24
- Plugin v0.1.0 (installed via
@apify/apify-openclaw-plugin@latest)
- macOS, Node 22
Problem
OpenClaw derives a plugin ID hint from the npm package name by stripping the scope:
@apify/apify-openclaw-plugin→apify-openclaw-plugin. It then compares this against the ID declared inopenclaw.plugin.json("id": "apify") and the default export insrc/index.ts(id: "apify"). Since they don't match, OpenClaw logs a warning on every config validation cycle:This fires ~50 times per gateway boot and on every config reload, flooding
gateway.err.logwith hundreds of lines per day.Suggested fix
Change
"id"to"apify-openclaw-plugin"in both:openclaw.plugin.json(line 2)src/index.ts(line 6, the default export)This aligns the plugin ID with what OpenClaw derives from the npm package name.
Alternatively, if you'd prefer to keep
"apify"as the ID, renaming the npm package to@apify/apifywould also resolve it — though that's a bigger change.Environment
@apify/apify-openclaw-plugin@latest)