BerriAI/litellm · error · ValueError
Singulr: api_base {self.singulr_api_base} uses plain HTTP fo
Error message
Singulr: api_base {self.singulr_api_base} uses plain HTTP for a non-local endpoint. Guardrail payloads contain the API token, full conversation content, and the guardrail decision, so this endpoint must use HTTPS. What it means
Error "Singulr: api_base {self.singulr_api_base} uses plain HTTP for a non-local endpoint. Guardrail payloads contain the API token, full conversation content, and the guardrail decision, so this endpoint must use HTTPS." thrown in BerriAI/litellm.
Source
Thrown at litellm/proxy/guardrails/guardrail_hooks/singulr/singulr.py:57
self,
singulr_api_key: str | None = None,
singulr_api_base: str | None = None,
singulr_application_id: str | None = None,
singulr_guardrail_id: str | None = None,
block_on_error: bool | None = None,
timeout: float | None = None,
**kwargs: Any,
) -> None:
self.singulr_api_key = singulr_api_key or os.environ.get("SINGULR_API_KEY")
self.singulr_api_base = (singulr_api_base or os.environ.get("SINGULR_API_BASE") or _DEFAULT_API_BASE).rstrip(
"/"
)
parsed: Final = urlparse(self.singulr_api_base)
if parsed.scheme == "http" and parsed.hostname not in (
"localhost",
"127.0.0.1",
):
raise ValueError(
f"Singulr: api_base {self.singulr_api_base} uses plain HTTP for a "
"non-local endpoint. Guardrail payloads contain the API token, full "
"conversation content, and the guardrail decision, so this endpoint "
"must use HTTPS."
)
self.singulr_application_id = singulr_application_id or os.environ.get("SINGULR_ENFORCEMENT_ENTITY_ID")
self.singulr_guardrail_id = singulr_guardrail_id or os.environ.get("SINGULR_GUARDRAIL_ID")
if block_on_error is None:
env: Final = os.environ.get("SINGULR_BLOCK_ON_ERROR", "true")
self.block_on_error = env.lower() in ("true", "1", "yes")
else:
self.block_on_error = block_on_error
self.timeout = _DEFAULT_TIMEOUT if timeout is None else timeout
self.async_handler = get_async_httpx_client(View on GitHub (pinned to 77b7c6c40c)
Solutions
- Change api_base to an https:// URL for the Singulr endpoint.
- Only use plain HTTP for localhost endpoints.
When it happens
Trigger: Thrown at litellm/proxy/guardrails/guardrail_hooks/singulr/singulr.py:57 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/f6d740a8b86d90f6.
Report an issue: GitHub.