Root cause: 'bun run' subcommand does NOT support --cwd flag. Both 'Build web' and 'MCP smoke test' steps used 'bun --cwd apps/X run build/smoke' which silently printed usage and exited 0 — no actual build/test ran. This meant: 1. No .next/ was produced → artifact upload found no files → deploy failed 2. Smoke test was silently skipped Fix: use 'cd apps/X && bun run Y' pattern instead.