screenpipe/screenpipe · warning

screenpipe: warning: postinstall exited with code ${result.s

Error message

screenpipe: warning: postinstall exited with code ${result.status}

What it means

This warning fires when postinstall.sh was found and spawned successfully, but the shell script exited with a non-zero status. The hook intentionally does not fail the install (`process.exit(0)` afterwards), so this surfaces script-level setup failures (platform detection, symlink/binary placement, etc.) as a warning only.

Source

Thrown at packages/cli/screenpipe/scripts/postinstall.js:144

  trackInstall();
  return;
}

const scriptPath = join(__dirname, "postinstall.sh");
if (!existsSync(scriptPath)) {
  console.warn(`screenpipe: warning: missing postinstall script at ${scriptPath}`);
  process.exit(0);
}

const result = spawnSync("sh", [scriptPath], { stdio: "inherit" });

if (result.error) {
  console.warn(`screenpipe: warning: postinstall skipped: ${result.error.message}`);
  process.exit(0);
}

if (result.status !== 0) {
  console.warn(`screenpipe: warning: postinstall exited with code ${result.status}`);
}

process.exit(0);

View on GitHub (pinned to 4ebf712990)

Solutions

  1. Re-run the script directly to reproduce: `sh node_modules/screenpipe/scripts/postinstall.sh; echo $?` (repo: `sh packages/cli/screenpipe/scripts/postinstall.sh`) and inspect which command returns the non-zero code.
  2. Install the missing dependency the script needs (e.g. curl, unzip) or fix filesystem permissions on the target paths it writes to.
  3. Check the script for platform/arch branches and confirm your OS/CPU (`uname -ms`) is one it supports; if not, update the script or fall back to a manual install of the screenpipe binary.
  4. Since the hook always exits 0, verify the CLI afterwards with `screenpipe status` and only treat the warning as blocking if that fails.
Defensive patterns

Strategy: validation

Validate before calling

sh node_modules/screenpipe/scripts/postinstall.sh; echo "exit=$?"

Prevention

When it happens

Trigger: postinstall.sh runs during `npm install`/`bun install` of the screenpipe CLI on macOS/Linux and returns non-zero: a command inside the script fails (missing required tool like curl/unzip, permission denied writing to a target path, unsupported OS/arch branch, `set -e` abort on a failed check).

Common situations: Minimal CI images lacking curl or other tools the script uses; read-only npm global prefixes or permission-restricted node_modules; exotic CPU/OS combinations the script's case-statement doesn't handle; script failing under `npm config set ignore-scripts false` re-runs with different env.

Related errors


AI-assisted analysis of screenpipe/screenpipe@4ebf712990 (2026-09-01). Data as JSON: /api/errors/8bdf335fade8d2c2. Report an issue: GitHub.