Skip to content

[CI Failure Doctor] Live MCP registry test brittle description assertion #17437

@github-actions

Description

@github-actions

CI Failure Investigation - Run #37182

Summary

Integration Integration: CLI Completion & Other fails because the live MCP registry test assumes every server entry has a description even though the production registry now returns a server without that field.

Failure Details

Root Cause Analysis

go test of pkg/cli executes TestMCPRegistryClient_LiveSearchServers. That test’s search_all_servers subtest validates the first registry entry for non-empty name, description, and transport. The live MCP registry response now includes a server (microsoft/markitdown) whose Description field is empty, so the assertion t.Errorf("First server has empty description") fires and marks the test as failed even though the search otherwise succeeds. The integration job therefore exits with code 1 because of the brittle assumption about optional metadata.

Failed Jobs and Errors

  • Integration: CLI Completion & Other – go test ./pkg/cli -tags integration ... fails because TestMCPRegistryClient_LiveSearchServers/search_all_servers logs mcp_registry_live_test.go:47: First server has empty description while asserting that the first MCP registry entry contains a description. The package later reports FAIL github.com/github/gh-aw/pkg/cli 7.624s.
Investigation Findings
  • The CLI integration job runs the live MCP registry suite, and the failing log lines show the first server is named microsoft/markitdown with transport stdio but no description.
  • The package-level failure is not due to a panic, race, or compile error—it directly follows the t.Errorf from the description validation.
  • Reproducing locally requires an open network path to the GitHub MCP registry: go test -run TestMCPRegistryClient_LiveSearchServers -tags integration ./pkg/cli.

Recommended Actions

  • Relax or remove the Description non-empty assertion in pkg/cli/mcp_registry_live_test.go so that the integration suite tolerates live registry entries without descriptions and only issues warnings in that case.

Prevention Strategies

Treat optional metadata from live services as warnings, not requirements, in integration tests and focus assertions on fields guaranteed by the API contract.

AI Team Self-Improvement

When authoring live registry integration tests, mark fields that may legitimately be empty as optional and default to logging warnings instead of failing the test to keep CI resilient.

Historical Context

No previous [CI Failure Doctor] investigations match this pattern; this appears to be the first occurrence triggered by the live registry’s metadata change.

🩺 Diagnosis provided by CI Failure Doctor

To install this workflow, run gh aw add githubnext/agentics/workflows/ci-doctor.md@ea350161ad5dcc9624cf510f134c6a9e39a6f94d. View source at https://github.com/githubnext/agentics/tree/ea350161ad5dcc9624cf510f134c6a9e39a6f94d/workflows/ci-doctor.md.

  • expires on Feb 22, 2026, 9:24 AM UTC

Metadata

Metadata

Labels

cookieIssue Monster Loves Cookies!

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions