{"record":{"id":"7a92c79c7cc269f7","repo":"can1357/oh-my-pi","slug":"brew-args-0-failed-with-exit-code-result-exi","errorCode":null,"errorMessage":"brew ${args[0]} failed with exit code ${result.exitCode}","messagePattern":"brew (.+?) failed with exit code (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/coding-agent/src/cli/update-cli.ts","lineNumber":1666,"sourceCode":"\tconsole.log(\n\t\tchalk.yellow(\n\t\t\t`This install is no longer managed by ${steps.manager}. Removing the old global package may delete this launcher; if it does, reinstall with: ${installerHint()}`,\n\t\t),\n\t);\n}\n\nasync function updateViaHomebrew(expectedVersion: string, force: boolean): Promise<void> {\n\tconsole.log(chalk.dim(\"Updating Homebrew formulae...\"));\n\tconst update = await $`brew update`.nothrow();\n\tif (update.exitCode !== 0) {\n\t\tthrow new Error(`brew update failed with exit code ${update.exitCode}`);\n\t}\n\n\tconsole.log(chalk.dim(\"Updating via Homebrew...\"));\n\tconst args = buildHomebrewUpdateArgs(force);\n\tconst result = await $`brew ${args}`.nothrow();\n\tif (result.exitCode !== 0) {\n\t\tthrow new Error(`brew ${args[0]} failed with exit code ${result.exitCode}`);\n\t}\n\n\tawait printVerification(expectedVersion);\n}\n\nasync function updateViaMise(expectedVersion: string, force: boolean): Promise<void> {\n\tconsole.log(chalk.dim(\"Updating via mise...\"));\n\tconst args = buildMiseUpgradeArgs();\n\tconst result = await $`mise ${args}`.nothrow();\n\tif (result.exitCode !== 0) {\n\t\tthrow new Error(`mise upgrade failed with exit code ${result.exitCode}`);\n\t}\n\n\tif (force) {\n\t\tconst forceArgs = buildMiseForceInstallArgs(expectedVersion);\n\t\tconst forceResult = await $`mise ${forceArgs}`.nothrow();\n\t\tif (forceResult.exitCode !== 0) {\n\t\t\tthrow new Error(`mise install --force failed with exit code ${forceResult.exitCode}`);","sourceCodeStart":1648,"sourceCodeEnd":1684,"githubUrl":"https://github.com/can1357/oh-my-pi/blob/969062200754ea02cfac922e5ebb8c608c079e15/packages/coding-agent/src/cli/update-cli.ts#L1648-L1684","documentation":"Thrown when the actual Homebrew upgrade (`brew upgrade` or `brew install <formula>`, per buildHomebrewUpdateArgs) exits non-zero after a successful `brew update`. The formula index is current, but installing/upgrading the formula itself failed.","triggerScenarios":"`brew upgrade <pkg>` / `brew install <pkg>` fails: build-from-source failure, unresolved dependencies, another brew process holding the lock, or the formula version not yet in the API.","commonSituations":"Formula lags behind the released version; concurrent brew runs (lock contention); Xcode CLT missing for source builds; disk space exhausted.","solutions":["Run the same `brew upgrade <formula>` manually to see brew's error output","Ensure `brew update` succeeded and the formula has the expected version (`brew info <formula>`)","Check for stale brew locks (`rm -f $(brew --prefix)/var/homebrew/locks/*.lock`) or concurrent brew processes","Free disk space / install Xcode CLT if the error indicates build issues","Fall back to the standalone binary installer or another package manager"],"exampleFix":"// before\nconst result = await $`brew ${args}`.nothrow();\nif (result.exitCode !== 0) {\n\tthrow new Error(`brew ${args[0]} failed with exit code ${result.exitCode}`);\n}\n// after\nconst result = await $`brew ${args}`.nothrow();\nif (result.exitCode !== 0) {\n\tthrow new Error(`brew ${args.join(\" \")} failed (${result.exitCode}): ${result.stderr.text()}`);\n}","handlingStrategy":"try-catch","validationCode":"const info = await $`brew info ${formula}`.nothrow();\nif (info.exitCode !== 0 || !info.text().includes(expectedVersion)) {\n\tconsole.warn(\"formula version not yet available via brew\");\n}","typeGuard":"function brewUpgradeOk(r: { exitCode: number }): r is { exitCode: 0 } {\n\treturn r.exitCode === 0;\n}","tryCatchPattern":"try {\n\tawait updateSelf({ method: \"homebrew\" });\n} catch (err) {\n\tif (/brew \\S+ failed/.test(err.message)) {\n\t\t// run `brew upgrade <formula>` manually to see brew's real diagnostics\n\t} else throw err;\n}","preventionTips":["Don't run concurrent brew processes (lock contention)","Keep Xcode CLT installed for source builds","Check `brew info <formula>` for version availability before scripted upgrades"],"tags":["homebrew","self-update","upgrade","process-exit-code"],"backgroundTag":"package-install-failed","analyzedSha":"969062200754ea02cfac922e5ebb8c608c079e15","analyzedAt":"2026-08-31T10:29:35.737Z","schemaVersion":2},"datasetVersion":"2026-08-31T14:17:45.589Z"}