xai-org/x-algorithm · error · ValueError
Retry interval must be greater than 0
Error message
Retry interval must be greater than 0
What it means
retry_interval is the sleep between failed kinit attempt batches. __init__ requires it to be positive; <= 0 would cause a tight retry loop hammering the KDC. The check runs after keytab existence and interval/attempts checks in the same validation block.
Source
Thrown at grox/libs/kerberos_cli/kerberos.py:32
renew_interval: int = 3600
attempts: int = 5
retry_interval: int = 60
class KerberosRenewer:
def __init__(self, keytab_path: str, principal: str, **kwargs):
self._renewer: asyncio.Task | None = None
self.config = KerberosConfig(
keytab_path=keytab_path, principal=principal, **kwargs
)
if not Path(self.config.keytab_path).exists():
raise FileNotFoundError(f"Keytab file not found: {self.config.keytab_path}")
if self.config.renew_interval <= 0:
raise ValueError("Renew interval must be greater than 0")
if self.config.attempts <= 0:
raise ValueError("Attempts must be greater than 0")
if self.config.retry_interval <= 0:
raise ValueError("Retry interval must be greater than 0")
async def _kerberos_renewal_loop(self):
while True:
attempts = self.config.attempts
while attempts > 0:
attempts -= 1
try:
await self._renew_kerberos_ticket()
logger.info(
f"Kerberos ticket renewed successfully for {self.config.principal}"
)
break
except Exception:
if attempts == 0:
logger.error(
f"Kerberos renewal failed after {self.config.attempts} attempts: {traceback.format_exc()}"
)
else:View on GitHub (pinned to 24c60942c5)
Solutions
- Set retry_interval to a positive value (e.g. 30–60 seconds).
- Audit shared KerberosConfig defaults so all three numeric fields have positive fallbacks.
Example fix
# before client = KerberosClient(kt, principal, retry_interval=0) # ValueError # after client = KerberosClient(kt, principal, retry_interval=30)
Defensive patterns
Strategy: validation
Validate before calling
retry_interval = retry_interval if retry_interval and retry_interval > 0 else 30 client = KerberosClient(kt, principal, retry_interval=retry_interval)
Try / catch
try:
client = KerberosClient(kt, p, retry_interval=ri)
except ValueError as e:
if 'Retry interval' in str(e):
client = KerberosClient(kt, p, retry_interval=30)
else:
raise Prevention
- Coerce missing numeric configs to sane positive defaults
- Never set retry sleeps to 0 in shared templates
When it happens
Trigger: KerberosClient(..., retry_interval=0) or negative — commonly a missing config key defaulting to 0, or seconds/milliseconds confusion.
Common situations: Defaults object where retry_interval was added later and old configs lack it; someone setting 0 intending 'retry immediately' which this library forbids.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- Renew interval must be greater than 0
- Attempts must be greater than 0
- sink policy {resolved}: unknown keys {sorted(unknown)}
- `clusters` must contain at least one region
- Region {region!r} must list at least one broker
AI-assisted analysis of xai-org/x-algorithm@24c60942c5 (2026-08-28).
Data as JSON: /api/errors/6dd4ae07e29fb10f.
Report an issue: GitHub.