# X_SEAL_KEY_MISSING

## Means

no master key to seal or open a value with

## Typical cause

`seal()` / `open()` ran with `ULTIMATE_SECRETS_KEY` unset and no `.secrets.key` under the app root. Never a pass-through — a value that should have been sealed is refused, not stored as plaintext

## Fix

`x secrets init`, or where the key already exists `export ULTIMATE_SECRETS_KEY="$(cat .secrets.key)"`

[Encrypted secrets](/error-codes#encrypted-secrets)
