paperclipai/paperclip · error · Error
Plugin SQL references schema "${ref.schema}" outside namespa
Error message
Plugin SQL references schema "${ref.schema}" outside namespace "${namespace}" What it means
Namespace containment guard: a qualified reference in the migration targets a schema other than the plugin's derived namespace and other than public. Plugins may only touch their own schema (plus whitelisted public reads); the statement referencing the foreign schema is at fault.
Source
Thrown at server/src/services/plugin-database.ts:242
"create view",
"drop table",
"into",
"truncate table",
"update",
]);
const hasQualifiedObjectRef = refs.some((ref) => objectRefKeywords.has(ref.keyword));
if (!hasQualifiedObjectRef && !normalized.startsWith("comment ")) {
throw new Error("Plugin migration objects must use fully qualified schema names");
}
const allowedCoreReadTables = new Set(coreReadTables);
for (const ref of refs) {
if (ref.schema === namespace) continue;
if (ref.schema === "public") {
assertAllowedPublicRead(ref, allowedCoreReadTables);
continue;
}
throw new Error(`Plugin SQL references schema "${ref.schema}" outside namespace "${namespace}"`);
}
}
export function validatePluginRuntimeQuery(
query: string,
namespace: string,
coreReadTables: readonly PluginDatabaseCoreReadTable[] = [],
): void {
const statements = splitSqlStatements(query);
if (statements.length !== 1) {
throw new Error("Plugin runtime SQL must contain exactly one statement");
}
const statement = statements[0]!;
assertNoBannedSql(statement);
const normalized = normaliseSql(statement);
if (!normalized.startsWith("select ") && !normalized.startsWith("with ")) {
throw new Error("ctx.db.query only allows SELECT statements");
}View on GitHub (pinned to 120ae5428f)
Solutions
- Change the SQL to reference only objects inside the plugin's namespace schema.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/plugin-database.ts:242 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18).
Data as JSON: /api/errors/58233ed6129cc959.
Report an issue: GitHub.