Skip to content
Strata v1.2.12

2026-05-15: Fix Prisma exit 127 on desktop launch + doc polish

Three issues discovered after v1.2.3 desktop install feature:

Strata — startup error
Database migration failed:
prisma migrate deploy exited with exit status: 127

Root cause: macOS GUI apps launch with a stripped PATH (/usr/bin:/bin:/usr/sbin:/sbin). find_npx() returns /opt/homebrew/bin/npx — a JS script with #!/usr/bin/env node shebang. When the OS tries to execute it, env node fails because /opt/homebrew/bin is not in PATH → exit 127.

v1-2-3.md and v1-2-4.md had subtitles in their title: frontmatter ("v1.2.3: Desktop install script + doc site fixes"). All older releases use "vX.Y.Z" only.

strataapp.md intro blockquote was too verbose.

Replace npx prisma migrate deploy / npx prisma db seed with:

node backend/node_modules/prisma/build/index.js migrate deploy
node backend/node_modules/prisma/build/index.js db seed

find_node() returns /opt/homebrew/bin/node (a native Mach-O binary — works without PATH). The local prisma script at backend/node_modules/prisma/build/index.js is used directly via Node, bypassing the shebang/env problem entirely. Remove find_npx().

  • v1-2-3.md + v1-2-4.md titles → "v1.2.3" / "v1.2.4"
  • agents-plan-checklist.instructions.md — clarify: release doc title: = "vX.Y.Z" only (no subtitle)

strataapp.md intro callout shortened to a brief one-liner.

#ConventionCheck
1DocsThis plan + execution summary
2Test gatesRust compile + manual launch verify
3Self-review✅ all files cross-referenced
4Endpoint coverageN/A
5Bug-to-TestManual: tauri:install + double-click
6Seed isolationN/A
7Transaction invariantsN/A
8Plan history✅ this file
9Infra test gatenpm run tauri:install + launch verify
10Env compatN/A
11Do-no-harmN/A (pure bug fix)
12Execution summaryAppend after done
13Doc grepNo renames
14Semver releasev1.2.5 patch

Commit: 168ec98

  • src-tauri/src/lib.rs — removed find_npx(); updated run_prisma_migrate and run_prisma_seed to call node backend/node_modules/prisma/build/index.js directly
  • docs/releases/v1-2-3.md — title stripped to "v1.2.3"
  • docs/releases/v1-2-4.md — title stripped to "v1.2.4"
  • docs/strataapp.md — Why Strata callout shortened to one line
  • .github/instructions/agents-plan-checklist.instructions.md — added “Release notes doc format” section clarifying title = "vX.Y.Z" only
  • docs/plans/2026-05-15-fix-prisma-exit-127.md — this file

None. Implementation followed the plan exactly.

GateResult
Rust compile (cargo check)✅ 0 errors, 0 warnings
npm run tauri:install✅ Built and installed to /Applications
Double-click launch✅ Backend healthy on port 3456, no error dialog
Backend unit / e2e⏭ not affected
Frontend unit / e2e⏭ not affected
  • find_node() already hardcoded the absolute Mach-O binary path — no additional path resolution needed.
  • /opt/homebrew/bin/npx is a symlink to a JS file (npm/bin/npx-cli.js) with #!/usr/bin/env node — the shebang is what fails in stripped-PATH environments, not the binary existence check.