Skip to content

Skill for diagnosing self-hosted OpenHands Enterprise installs #527

Description

@aivong-openhands

Desired Behavior

An agent-runnable skill for diagnosing self-hosted OpenHands Enterprise (Replicated VM-based) installs, usable by customers self-serving, by an FDE during a support call, or as a first-response step before escalating to the platform team.

It should triage the eight failure modes that recur across real installs — sandbox startup timeouts, git provider auth, certificate errors, LLM connectivity, Keycloak login, Replicated Admin Console access, stuck upgrades, and resource exhaustion — from a described symptom, pasted log output, or a support bundle. Recovery should validate each step before the next rather than only at the end, so a failed step is caught before a later one buries the evidence.

Support bundles need particular attention: the signal is spread across analysis.json, per-namespace pod objects, and node metrics, so the skill should summarise a bundle offline and rank findings into a most likely root cause rather than listing everything it sees. Where the bundle's own tooling misleads — warn-severity analyzers rendering under a FAIL heading, and per-object analyzers collapsing to one arbitrary example per family — the skill should say so, because both invite a confident wrong answer.

When an issue cannot be resolved, it should produce an escalation handoff stating what was tried, what the logs show, and the likely root cause.

Acceptance Criteria

  • Triage covers all eight failure modes, from symptom, pasted logs, or a bundle.
  • Guided recovery validates each step before proceeding, and requires agreement for destructive steps.
  • Support bundle generation is documented, and bundle output is summarised into a ranked root cause.
  • The two analyzer traps (warn under FAIL, [xN] family collapse) are documented.
  • An escalation handoff template is included.
  • Commands are checked for accuracy rather than assumed: kubectl invocations parse, jq programs compile, and no code block references an undefined shell variable.
  • The bundle triage script remains a verbatim copy of its source, verified by checksum.
  • uv run pytest -q passes and npm run build:skills regenerates the catalogue with no diff.

Context

Implemented by PR #456. Derived from Linear PLTF-2910, which tracks the same work internally.

Known limitation to resolve before this can be trusted in the field: the skill hard-codes namespaces, label selectors, deployment names, and secret names that cannot be verified offline. A wrong selector returns No resources found and exits 0, which reads as "healthy" rather than "wrong query", so these need checking against a real install.

This issue was created by an AI agent (OpenHands) on behalf of @ai.vong.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready-for-devScoped for contribution; managed by repository readiness checks.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions