tirth8205/code-review-graph · error · ValueError
VOYAGE_API_KEY environment variable is required for the Voya
Error message
VOYAGE_API_KEY environment variable is required for the Voyage embedding provider.
What it means
The voyage provider requires VOYAGE_API_KEY. Optional knobs (CRG_VOYAGE_BASE_URL, etc.) have defaults, but the key does not.
Source
Thrown at code_review_graph/embeddings.py:965
model=resolved_model,
dimension=dimension,
batch_size=batch_size,
)
if name == "minimax":
api_key = os.environ.get("MINIMAX_API_KEY")
if not api_key:
raise ValueError(
"MINIMAX_API_KEY environment variable is required for "
"the MiniMax embedding provider."
)
_warn_cloud_egress("minimax")
return MiniMaxEmbeddingProvider(api_key=api_key)
if name == "voyage":
api_key = os.environ.get("VOYAGE_API_KEY")
if not api_key:
raise ValueError(
"VOYAGE_API_KEY environment variable is required for "
"the Voyage embedding provider."
)
base_url = (
os.environ.get("CRG_VOYAGE_BASE_URL")
or VoyageEmbeddingProvider._DEFAULT_BASE_URL
)
resolved_model = (
model
or os.environ.get("CRG_VOYAGE_MODEL")
or VoyageEmbeddingProvider._DEFAULT_MODEL
)
dim_env = os.environ.get("CRG_VOYAGE_OUTPUT_DIMENSION")
output_dimension = int(dim_env) if dim_env else VoyageEmbeddingProvider._DEFAULT_DIMENSION
output_dtype = (
os.environ.get("CRG_VOYAGE_OUTPUT_DTYPE")
or VoyageEmbeddingProvider._DEFAULT_OUTPUT_DTYPE
)View on GitHub (pinned to b58668751a)
Solutions
- export VOYAGE_API_KEY=<your key>
- Check you used the unprefixed name, not CRG_VOYAGE_API_KEY
- Verify the var reaches the process: printenv VOYAGE_API_KEY
Example fix
# before export CRG_VOYAGE_API_KEY=pa-... # after export VOYAGE_API_KEY=pa-...
Defensive patterns
Strategy: validation
Validate before calling
if not os.environ.get("VOYAGE_API_KEY"):
raise RuntimeError("VOYAGE_API_KEY not set; cannot use voyage provider") Try / catch
try:
provider = get_provider("voyage")
except ValueError as e:
if "VOYAGE_API_KEY" in str(e):
provider = get_provider("local")
else:
raise Prevention
- Set VOYAGE_API_KEY (unprefixed) in all shells/CI jobs that embed
- Preflight-check the key before long embedding runs
- Don't confuse it with CRG_VOYAGE_* optional knobs
When it happens
Trigger: Passing provider='voyage' to get_provider() with VOYAGE_API_KEY unset or empty.
Common situations: Same as other missing-key cases: unsourced rc files, missing secret in CI/containers, or setting CRG_VOYAGE_API_KEY instead of VOYAGE_API_KEY (the unprefixed name is required).
Understand the failure class
Background: "environment variable is not set" and "Missing keys in environment" errors: what missing required env var messages mean and how to fix them — this error's family across 28 libraries.
Related errors
- Missing required environment variable(s) for the OpenAI embe
- MINIMAX_API_KEY environment variable is required for the Min
- GOOGLE_API_KEY environment variable is required for the Goog
- Voyage API HTTP {http_err.code}: {err_msg}
- Voyage API error: {msg}
AI-assisted analysis of tirth8205/code-review-graph@b58668751a (2026-08-28).
Data as JSON: /api/errors/fc2bdeaf2cad3d6f.
Report an issue: GitHub.