paperclipai/paperclip · error
Package "${packageName}" does not export createServerAdapter
Error message
Package "${packageName}" does not export createServerAdapter(). Ensure the package's main entry exports a createServerAdapter function. What it means
Contract check in validateAdapterModule: the loaded adapter package's main entry does not export a createServerAdapter function. The plugin/adapter loader requires this exact factory as the server-adapter entry point, so a package missing (or renaming) that export fails validation and the adapter is not registered — check the package's exports/main field.
Source
Thrown at server/src/adapters/plugin-loader.ts:153
{ packageName, uiParserFile, size: source.length },
`Loaded UI parser from adapter package${contractVersion ? "" : " (no version declared)"}`,
);
return source;
} catch (err) {
logger.warn({ err, packageName, uiParserFile }, "Failed to read UI parser from adapter package");
return undefined;
}
}
// ---------------------------------------------------------------------------
// Load / reload
// ---------------------------------------------------------------------------
export function validateAdapterModule(mod: unknown, packageName: string): ServerAdapterModule {
const m = mod as Record<string, unknown>;
const createServerAdapter = m.createServerAdapter;
if (typeof createServerAdapter !== "function") {
throw new Error(
`Package "${packageName}" does not export createServerAdapter(). ` +
`Ensure the package's main entry exports a createServerAdapter function.`,
);
}
const adapterModule = createServerAdapter() as ServerAdapterModule;
if (!adapterModule || !adapterModule.type) {
throw new Error(
`createServerAdapter() from "${packageName}" returned an invalid module (missing "type").`,
);
}
// Fail closed on a malformed login capability. The validator throws a clear
// error, so the loader rejects the adapter instead of loading it with a
// partial capability.
try {
validateAdapterLoginCapability(adapterModule);
} catch (err) {View on GitHub (pinned to a7e689b3c3)
Solutions
- Export a createServerAdapter function from the package's main entry point.
- Verify the installed plugin package version matches the expected adapter contract.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/adapters/plugin-loader.ts:152 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@a7e689b3c3 (2026-08-18).
Data as JSON: /api/errors/2ea3620bb2245bc3.
Report an issue: GitHub.