ruvnet/ruflo · error
${failure} Previous Meta-Proxy ${prior ? 'was restored and v
Error message
${failure} Previous Meta-Proxy ${prior ? 'was restored and verified' : 'binary was restored; it was not running before the upgrade'}. What it means
This is the terminal error of a failed upgrade with successful rollback: installAndActivateProxy() prefixes the original failure with what happened to the previous Meta-Proxy. If a prior daemon was running, it was restored and re-verified via launchAndVerify; otherwise only the old binary files were restored and nothing was relaunched. It tells you the system is back to (or at) the pre-upgrade state and the requested upgrade did not happen.
Source
Thrown at v3/@claude-flow/cli/src/proxy/activation.ts:182
if (fs.existsSync(binary)) fs.copyFileSync(binary, binaryBackup);
if (fs.existsSync(manifest)) fs.copyFileSync(manifest, manifestBackup);
const installed = await installProxy({ version, log });
const effective = await launchAndVerify(installed.binaryPath, installed.version, wait);
return { ...installed, pid: effective.pid };
} catch (error) {
const failure = error instanceof Error ? error.message : String(error);
if (fs.existsSync(binaryBackup)) {
try {
await stopEffective(wait);
fs.rmSync(binary, { force: true });
fs.renameSync(binaryBackup, binary);
fs.rmSync(manifest, { force: true });
if (fs.existsSync(manifestBackup)) fs.renameSync(manifestBackup, manifest);
if (prior) await launchAndVerify(prior.executable === binary ? binary : prior.executable, prior.version, wait);
} catch (rollbackError) {
throw new Error(`${failure} Rollback failed: ${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}`);
}
throw new Error(`${failure} Previous Meta-Proxy ${prior ? 'was restored and verified' : 'binary was restored; it was not running before the upgrade'}.`);
}
throw error;
} finally {
fs.rmSync(binaryBackup, { force: true });
fs.rmSync(manifestBackup, { force: true });
release?.();
}
}
View on GitHub (pinned to 29f048fc3b)
Solutions
- Read the prefix of the message — it is the root cause of the upgrade; address that (network, version availability, daemon startup)
- Confirm the previous daemon is healthy (probe http://127.0.0.1:11435/version) or start it manually if none was running before
- Re-run the install once the root cause is fixed; the transactional flow can be safely retried
- If repeated, pin the currently working version and check the daemon log and CLI --verbose output for the underlying failure
Example fix
// retry after fixing root cause (e.g. network) export HTTPS_PROXY=http://corp-proxy:8080 npx ruflo proxy install --version 1.2.3
Defensive patterns
Strategy: try-catch
Validate before calling
// Verify the current install is healthy before attempting an upgrade
const current = await probeEffectiveProxy();
if (current) console.log(`Healthy baseline: v${current.version} pid ${current.pid}`); Type guard
null
Try / catch
try {
await installAndActivateProxy(version);
} catch (e) {
if (e instanceof Error && e.message.includes('was restored')) {
// upgrade failed, previous state restored — inspect the prefix cause and retry later
console.error('Upgrade failed, rolled back. Cause:', e.message.split('.')[0]);
} else throw e;
} Prevention
- Verify network/proxy access to the download source before upgrading in CI
- Pin a known-good version and upgrade deliberately, checking release notes
- Confirm the daemon is healthy (probe /version) before and after each upgrade
- Treat this error as safe: the prefix tells you the root cause to fix before retrying
When it happens
Trigger: installAndActivateProxy() failed at any step after the backup was created (installProxy download failure, launchAndVerify timeout, competing daemon) and the rollback path completed; the error message embeds the root cause as its prefix.
Common situations: Network failure while downloading the new version; target version doesn't exist or is incompatible; the new daemon couldn't start within 5s (errors 5/6 conditions); corporate proxy blocking downloads in CI.
Related errors
- ${failure} Rollback failed: ${rollbackError instanceof Error
- tar extraction failed (exit ${result.exitCode}): ${result.st
- Expand-Archive failed (exit ${result.exitCode}): ${result.st
- zip extraction failed via both available extractors. Expand-
- archive did not contain the expected binary at its root: ${b
AI-assisted analysis of ruvnet/ruflo@29f048fc3b (2026-09-01).
Data as JSON: /api/errors/fe90f2451b19e717.
Report an issue: GitHub.