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

  1. Clear one namespace at a time: `openhuman memory clear --namespace <ns>`
  2. To wipe everything, loop over `openhuman memory namespaces` output and clear each
  3. 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

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


AI-assisted analysis of tinyhumansai/openhuman@a221052e0d (2026-08-16). Data as JSON: /api/errors/5bd1ee1570a1b081. Report an issue: GitHub.