paperclipai/paperclip · error · Error
Command is not executable
Error message
Command is not executable: "${command}" (resolved: "${absolute}") What it means
Error "Command is not executable: "${command}" (resolved: "${absolute}")" thrown in paperclipai/paperclip.
Solutions
- Make the command executable (`chmod +x`) or configure a different command.
When it happens
Trigger: Thrown at packages/adapter-utils/src/server-utils.ts:3283 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-08-18).
Data as JSON: /api/errors/eb3988513ce89653.
Report an issue: GitHub.
Appendix: source
Thrown at packages/adapter-utils/src/server-utils.ts:4431
const result: MaterializedPaperclipSkillCopyResult = {
copiedFiles: 0,
skippedSymlinks: [],
};
const lockDir = `${targetRoot}.lock`;
const releaseLock = await acquireMaterializeLock(lockDir);
const tempRoot = `${targetRoot}.tmp-${process.pid}-${randomUUID()}`;
async function copyEntry(
sourcePath: string,
targetPath: string,
relativePath: string,
): Promise<void> {
const stat = await fs.lstat(sourcePath);
if (stat.isSymbolicLink()) {
result.skippedSymlinks.push(relativePath || ".");
return;
}
if (stat.isDirectory()) {
await fs.mkdir(targetPath, { recursive: true });
const entries = await fs.readdir(sourcePath, { withFileTypes: true });
entries.sort((left, right) => left.name.localeCompare(right.name));
for (const entry of entries) {
const childRelativePath = relativePath
? `${relativePath}/${entry.name}`
: entry.name;
await copyEntry(
path.join(sourcePath, entry.name),
path.join(targetPath, entry.name),
childRelativePath,
);
}
return;
}
View on GitHub (pinned to 3f1d897a7c)