tinyhumansai/openhuman · error
Failed to secure recovery phrase. Please try again.
Error message
Failed to secure recovery phrase. Please try again.
What it means
Argument-loop error from `openhuman memory clear`. Because clear is destructive, its accepted surface is intentionally minimal: only `--namespace/-n` (with a value), `-v/--verbose`, `-h/--help`. There is deliberately no --all, --force, or confirmation flag, and no positional form.
Source
Thrown at app/src/features/wallet/setupLocalWalletFromMnemonic.ts:28
mnemonic: string;
source: WalletSetupSource;
setEncryptionKey: (value: string | null) => Promise<void>;
/**
* Set to `true` only when the user has explicitly confirmed wallet replacement
* through the double-confirmation dialog. Defaults to `false`.
*/
force?: boolean;
}): Promise<void> {
const { mnemonic, source, setEncryptionKey, force } = args;
const words = mnemonic.trim().split(/\s+/).filter(Boolean);
if (words.length === 0) {
throw new Error('Recovery phrase is required.');
}
const normalizedMnemonic = words.join(' ');
const aesKey = deriveAesKeyFromMnemonic(normalizedMnemonic);
const encryptedMnemonic = (await openhumanEncryptSecret(normalizedMnemonic)).result?.trim();
if (!encryptedMnemonic) {
throw new Error('Failed to secure recovery phrase. Please try again.');
}
await setEncryptionKey(aesKey);
await setupLocalWallet({
consentGranted: true,
source,
mnemonicWordCount: words.length,
encryptedMnemonic,
accounts: deriveWalletAccountsFromMnemonic(normalizedMnemonic),
force,
});
}
View on GitHub (pinned to a221052e0d)
Solutions
- Clear one namespace at a time: `openhuman memory clear --namespace <ns>`
- To wipe everything, loop over `openhuman memory namespaces` output and clear each
- Run `openhuman memory clear --help` to confirm the minimal surface
Example fix
# before openhuman memory clear --all # after for ns in $(openhuman memory namespaces); do openhuman memory clear --namespace "$ns"; done
Defensive patterns
Strategy: validation
Validate before calling
# bash: clear accepts only --namespace <v>, -v, -h — reject destructive extras
for a in "$@"; do
case "$a" in
--namespace|-n|-v|--verbose|-h|--help) ;;
*) echo "unknown clear arg: $a (only --namespace is accepted)" >&2; exit 2 ;;
esac
done
openhuman memory clear "$@" Try / catch
if ! out=$(openhuman memory clear "$@" 2>&1); then case "$out" in *"unknown clear arg"*) echo 'clear one namespace at a time: --namespace <ns>' >&2; exit 2;; esac printf '%s\n' "$out" >&2; exit 1 fi
Prevention
- There is no --all/--force by design; script an explicit loop over namespaces instead
- Wrap clear behind a confirmation prompt in shared scripts — it deletes namespace contents
When it happens
Trigger: `openhuman memory clear --all` (no bulk-wipe flag exists by design); `openhuman memory clear cli` (positional not accepted); `openhuman memory clear -f`.
Common situations: Scripts ported from other CLIs that use --force/--all idioms; attempts to bulk-reset memory during development; muscle memory from destructive commands elsewhere.
Related errors
- audio blob is empty
- voice_not_compiled
- Recovery phrase is required.
- Invalid ${paramName}: ${value}. ID is out of the valid integ
- OpenHuman could not reach its local runtime. Quit and reopen
AI-assisted analysis of tinyhumansai/openhuman@a221052e0d (2026-08-16).
Data as JSON: /api/errors/5bd1ee1570a1b081.
Report an issue: GitHub.