BerriAI/litellm · error · HTTPException

Failed to decrypt Vantage integration token. Check your salt

Error message

Failed to decrypt Vantage integration token. Check your salt key configuration.

What it means

Same decryption failure path as the api_key, but for the Vantage integration_token setting: decrypt_value_helper returned None, indicating a salt-key mismatch or corrupted ciphertext for that specific field. The API key decrypt succeeded, so only the token's stored value is at fault.

Source

Thrown at litellm/proxy/spend_tracking/vantage_endpoints.py:116

    encrypted_api_key: Final = settings.get("api_key")
    if encrypted_api_key:
        decrypted_api_key = decrypt_value_helper(encrypted_api_key, key="vantage_api_key", exception_type="error")
        if decrypted_api_key is None:
            raise HTTPException(
                status_code=500,
                detail={"error": "Failed to decrypt Vantage API key. Check your salt key configuration."},
            )
        settings["api_key"] = decrypted_api_key

    encrypted_integration_token: Final = settings.get("integration_token")
    if encrypted_integration_token:
        decrypted_integration_token: Final = decrypt_value_helper(
            encrypted_integration_token,
            key="vantage_integration_token",
            exception_type="error",
        )
        if decrypted_integration_token is None:
            raise HTTPException(
                status_code=500,
                detail={"error": "Failed to decrypt Vantage integration token. Check your salt key configuration."},
            )
        settings["integration_token"] = decrypted_integration_token

    return settings


@router.get(
    "/vantage/settings",
    tags=["Vantage"],
    dependencies=[Depends(user_api_key_auth)],
    response_model=VantageSettingsView,
)
async def get_vantage_settings(
    user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
):
    """

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Ensure LITELLM_SALT_KEY matches the value used when the integration token was encrypted; re-configure the token if it changed.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/proxy/spend_tracking/vantage_endpoints.py:116 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18). Data as JSON: /api/errors/3607c2cb50c32f51. Report an issue: GitHub.