affaan-m/ECC · error · MissingKeyError
FAL_KEY is not set. Get a key at…
Error message
FAL_KEY is not set.
Get a key at https://fal.ai/dashboard/keys, then either:
export FAL_KEY='...'
or run the pipeline offline with no key and no spend:
export TASTE_FORGE_DRY_RUN=1 (or pass --dry-run) What it means
Error "FAL_KEY is not set. Get a key at https://fal.ai/dashboard/keys, then either: export FAL_KEY='...' or run the pipeline offline with no key and no spend: export TASTE_FORGE_DRY_RUN=1 (or pass --dry-run)" thrown in affaan-m/ECC.
Solutions
- export FAL_KEY='<your key>' after creating one at https://fal.ai/dashboard/keys
- Or run fully offline with TASTE_FORGE_DRY_RUN=1 / --dry-run (no key, no spend)
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at skills/taste-application/scripts/falapi.py:199 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16).
Data as JSON: /api/errors/e41633a23ef2123b.
Report an issue: GitHub.
Appendix: source
Thrown at skills/taste-application/scripts/falapi.py:199
if os.environ.get("TASTE_FORGE_ALLOW_LIVE") != "1":
raise FalError("live transport requires TASTE_FORGE_ALLOW_LIVE=1")
def safe_url(url: str) -> str:
"""Log only origin: paths, queries and userinfo can carry signed secrets."""
try:
parsed = urllib.parse.urlsplit(url)
return f"{parsed.scheme}://{parsed.hostname or '[invalid-host]'}"
except ValueError:
return "[invalid-url]"
def api_key() -> str:
"""Return ``FAL_KEY`` after live opt-in. Never logs the value."""
require_live()
key = os.environ.get("FAL_KEY", "").strip()
if not key:
raise MissingKeyError(
"FAL_KEY is not set.\n"
" Get a key at https://fal.ai/dashboard/keys, then either:\n"
" export FAL_KEY='...'\n"
" or run the pipeline offline with no key and no spend:\n"
f" export {DRY_RUN_ENV}=1 (or pass --dry-run)"
)
return key
def _fal():
"""Import ``fal_client`` lazily so dry runs work even if it is absent."""
try:
import fal_client # noqa: PLC0415 - deliberate lazy import
except ImportError as exc: # pragma: no cover - environment dependent
raise FalError(
"the 'fal_client' package is required for live calls: pip install fal-client"
) from exc
return fal_clientView on GitHub (pinned to 8321021c54)