paperclipai/paperclip · error · Error
Invalid --include value. Use one or more of: company,agents,
Error message
Invalid --include value. Use one or more of: company,agents,projects,issues,tasks,skills
What it means
`parseSecretsInclude` splits the `--include` value on commas, lowercases, and checks membership against the allowed set {company, agents, projects, issues, tasks, skills} (tasks is aliased to issues). If after filtering no token matched any allowed value, it throws. An empty/blank input returns the default include set, so this error only fires when a non-empty but wholly-unrecognized value is supplied.
Source
Thrown at cli/src/commands/client/secrets.ts:125
company: true,
agents: true,
projects: true,
issues: false,
skills: false,
};
export function parseSecretsInclude(input: string | undefined): CompanyPortabilityInclude {
if (!input?.trim()) return { ...DEFAULT_DECLARATION_INCLUDE };
const values = input.split(",").map((part) => part.trim().toLowerCase()).filter(Boolean);
const include = {
company: values.includes("company"),
agents: values.includes("agents"),
projects: values.includes("projects"),
issues: values.includes("issues") || values.includes("tasks"),
skills: values.includes("skills"),
};
if (!Object.values(include).some(Boolean)) {
throw new Error("Invalid --include value. Use one or more of: company,agents,projects,issues,tasks,skills");
}
return include;
}
export function isSensitiveEnvKey(key: string): boolean {
return SENSITIVE_ENV_KEY_RE.test(key);
}
export function toPlainEnvValue(binding: unknown): string | null {
if (typeof binding === "string") return binding;
if (typeof binding !== "object" || binding === null || Array.isArray(binding)) return null;
const record = binding as Record<string, unknown>;
if (record.type === "plain" && typeof record.value === "string") return record.value;
return null;
}
export function buildInlineMigrationSecretName(agentId: string, key: string): string {
return `agent_${agentId.slice(0, 8)}_${key.toLowerCase()}`;View on GitHub (pinned to 67001ec6eb)
Solutions
- Use only documented tokens: `company`, `agents`, `projects`, `issues` (or `tasks`), `skills` — comma-separated
- Omit `--include` to accept the default (`company,agents,projects`)
- Double-check plurals: it is `agents`/`projects`/`issues`/`skills`, not singular
Example fix
# before paperclipai secrets declarations -C comp-1 --include agent,issu # after paperclipai secrets declarations -C comp-1 --include agents,issues
Defensive patterns
Strategy: validation
Validate before calling
const ALLOWED_INCLUDE = new Set(["company", "agents", "projects", "issues", "tasks", "skills"]);
function validateInclude(input: string | undefined): string[] {
const tokens = (input ?? "").split(",").map((s) => s.trim().toLowerCase()).filter(Boolean);
const bad = tokens.filter((t) => !ALLOWED_INCLUDE.has(t));
if (tokens.length > 0 && bad.length === tokens.length) {
throw new Error(`Invalid --include tokens: ${bad.join(", ")}`);
}
return tokens;
} Type guard
const INCLUDE_TOKENS = ["company", "agents", "projects", "issues", "tasks", "skills"] as const;
type IncludeToken = typeof INCLUDE_TOKENS[number];
function isIncludeToken(v: unknown): v is IncludeToken {
return typeof v === "string" && (INCLUDE_TOKENS as readonly string[]).includes(v);
} Prevention
- Use only documented tokens; mind plurals (agents/projects/issues/skills)
- Omit --include to take the default
- Validate tokens against the allowed set in wrapper scripts
When it happens
Trigger: Passing `--include foo`, `--include company,bar`, or `--include ,,,` (commas with no valid tokens). The check uses `.some(Boolean)` over the include flags, so all-false triggers the throw.
Common situations: Typo in a token (e.g. `agent` instead of `agents`, `issue` instead of `issues`); passing a free-form string instead of the documented set; copy-paste that introduced a stray character.
Related errors
- Invalid --kind value. Use: all, secret, plain
- Environment variable ${envName} is empty or not set.
- Challenge secret is required. Pass --token or --token-env.
- Invalid --include value. Use one or more of: company,agents,
- Prompt text is required
AI-assisted analysis of paperclipai/paperclip@67001ec6eb (2026-08-12).
Data as JSON: /api/errors/ae670803999f27e3.
Report an issue: GitHub.