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

  1. 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)