oraios/serena · warning · ValueError
Config overview not yet available
Error message
Config overview not yet available
What it means
The dashboard exposes a `/get_config_overview` HTTP endpoint that returns `self._current_config_overview`. This field is populated asynchronously after startup, so if the endpoint is queried before the overview has been computed, the handler raises ValueError('Config overview not yet available'). It is a startup race, not a configuration defect.
Source
Thrown at src/serena/dashboard.py:311
def clear_tool_stats_route() -> dict[str, str]:
self._clear_tool_stats()
return {"status": "cleared"}
@self._app.route("/clear_logs", methods=["POST"])
def clear_logs() -> dict[str, str]:
self._memory_log_handler.clear_log_messages()
return {"status": "cleared"}
@self._app.route("/get_token_count_estimator_name", methods=["GET"])
def get_token_count_estimator_name() -> dict[str, str]:
estimator_name = self._tool_usage_stats.token_estimator_name if self._tool_usage_stats else "unknown"
return {"token_count_estimator_name": estimator_name}
@self._app.route("/get_config_overview", methods=["GET"])
def get_config_overview() -> dict[str, Any]:
result = self._current_config_overview
if result is None:
raise ValueError("Config overview not yet available")
return result
@self._app.route("/shutdown", methods=["PUT"])
def shutdown() -> dict[str, str]:
self._agent.shutdown()
return {"status": "shutting down"}
@self._app.route("/get_available_languages", methods=["GET"])
def get_available_languages() -> dict[str, Any]:
result = self._get_available_languages()
return result.model_dump()
@self._app.route("/add_language", methods=["POST"])
def add_language() -> dict[str, str]:
request_data = request.get_json()
if not request_data:
return {"status": "error", "message": "No data provided"}
request_add_language = RequestAddLanguage.model_validate(request_data)View on GitHub (pinned to 7fcbca7e62)
Solutions
- Wait and retry the request after a short delay until startup completes.
- Check the dashboard's readiness/started state (or poll a ready endpoint) before calling /get_config_overview.
- Poll with backoff in client code instead of a single immediate request.
- In the library, initialize `_current_config_overview` to an empty dict or return a 503 until ready.
Example fix
// client before
const cfg = await fetch(`${base}/get_config_overview`).then(r => r.json());
// after
await waitForDashboardReady(base);
const cfg = await fetch(`${base}/get_config_overview`).then(r => r.json()); Defensive patterns
Strategy: retry
Validate before calling
import time, requests
def config_overview_ready(base: str) -> bool:
try:
r = requests.get(f"{base}/get_config_overview", timeout=2)
return r.status_code == 200
except requests.RequestException:
return False Try / catch
import time, requests
for _ in range(10):
try:
r = requests.get(f"{base}/get_config_overview", timeout=5)
if r.status_code == 200:
overview = r.json(); break
except requests.RequestException:
pass
time.sleep(1)
else:
raise RuntimeError("dashboard config overview never became available") Prevention
- Wait for a dashboard ready/health endpoint before querying config endpoints.
- Poll with backoff instead of a single request at startup.
- Treat 500 'not yet available' responses as transient during startup.
- Optionally block agent startup until the overview is computed in your own harness.
When it happens
Trigger: Calling GET /get_config_overview on the dashboard web app immediately after the dashboard starts, before the background task that sets `_current_config_overview` has finished.
Common situations: Automated scripts or health checks polling the dashboard endpoint right after Serena starts; UI dashboards that fetch config before the agent finishes loading.
Related errors
- No active project
- Serena config file not found
- Serena config file path not set
- Invalid language server identifier: {request_add_language.la
- Invalid language server identifier: {request_remove_language
AI-assisted analysis of oraios/serena@7fcbca7e62 (2026-08-29).
Data as JSON: /api/errors/4e8b4a3e8d1e5e53.
Report an issue: GitHub.