{ "version": "4", "groupKey": "{}:{alertname=\"OpenClawBridgeToolsNeverSelected\"}", "truncatedAlerts": 0, "status": "firing", "receiver": "opensre-webhook", "groupLabels": { "alertname": "OpenClawBridgeToolsNeverSelected" }, "commonLabels": { "alertname": "OpenClawBridgeToolsNeverSelected", "severity": "high", "environment": "production", "service": "opensre-planner", "job": "opensre" }, "commonAnnotations": { "summary": "OpenClaw bridge tools permanently unavailable despite valid configuration", "description": "Despite a valid OpenClaw integration being present in resolved_integrations, the planner never selects list_openclaw_tools, search_openclaw_conversations, or call_openclaw_bridge_tool. Root cause: the catalog classifier returns the openclaw config dict without injecting connection_verified=True, so _openclaw_available() always returns False. Bug: integrations/_catalog_impl.py line 488.", "affected_tools": "list_openclaw_tools, search_openclaw_conversations, call_openclaw_bridge_tool", "root_cause_file": "integrations/_catalog_impl.py", "fix": "Add config_dict['connection_verified'] = True after openclaw_config.model_dump()" }, "externalURL": "http://alertmanager.monitoring.svc:9093", "alerts": [ { "status": "firing", "labels": { "alertname": "OpenClawBridgeToolsNeverSelected", "severity": "high", "environment": "production", "service": "opensre-planner", "job": "opensre", "instance": "opensre-prod-01" }, "annotations": { "summary": "OpenClaw bridge tools blocked by missing connection_verified flag", "description": "The is_available() check reads sources['openclaw']['connection_verified'] but the catalog never sets it. Every investigation silently skips all three OpenClaw bridge tools. connection_verified key absent from catalog-resolved openclaw config." }, "startsAt": "2026-05-11T06:00:00Z", "endsAt": "0001-01-01T00:00:00Z", "generatorURL": "http://prometheus.monitoring.svc:9090/graph?g0.expr=opensre_openclaw_tools_selected_total+%3D%3D+0", "fingerprint": "openclaw-bridge-tools-unavailable-001" } ] }