JuliusBrussee/caveman · error · ValueError

runtime_policy public_key must be a base64-encoded 32-byte E

Error message

runtime_policy public_key must be a base64-encoded 32-byte Ed25519 key

What it means

Error "runtime_policy public_key must be a base64-encoded 32-byte Ed25519 key" thrown in JuliusBrussee/caveman.

Source

Thrown at packages/sdk/python/caveman_cloud/core.py:2233

        kill_env: str = _POLICY_KILL_ENV,
        workflow: str | None = None,
    ) -> None:
        self._cave = cave
        self._workflow = workflow or cave.default_workflow
        self._kill_env = kill_env
        self._lock = threading.Lock()
        self._bundle: dict[str, Any] | None = None
        self._signed = False
        self._killed_locally = False
        # A pinned key makes a signature mandatory. An unparseable pin is a
        # caller bug, not a runtime condition: it raises here rather than
        # returning a client that silently rejects every bundle forever
        # (mirrors the TypeScript constructor, which throws).
        self._pinned_key: bytes | None = None
        if public_key is not None:
            decoded = self._decode_key(public_key)
            if decoded is None:
                raise ValueError("runtime_policy public_key must be a base64-encoded 32-byte Ed25519 key")
            self._pinned_key = decoded
        self._stop = threading.Event()
        self._thread: threading.Thread | None = None
        interval = _policy_number(auto_refresh_seconds)
        if interval is not None and interval > 0:
            self._thread = threading.Thread(
                target=self._auto_refresh,
                args=(interval,),
                name="caveman-runtime-policy",
                daemon=True,
            )
            self._thread.start()

    # ── lifecycle ────────────────────────────────────────────────────────────

    def kill(self) -> None:
        """Latch this client onto the baseline path immediately and locally.

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Set runtime_policy.public_key to a base64-encoded 32-byte Ed25519 public key.

When it happens

Trigger: Thrown at packages/sdk/python/caveman_cloud/core.py:2233 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15). Data as JSON: /api/errors/87bf6ca34228b26d. Report an issue: GitHub.