Skip to content

issue_write update (state: closed) hangs — mutation succeeds but no response is ever returned #2636

Description

@edimuj

Summary

issue_write with method: "update" and state: "closed" performs the GitHub mutation but never returns a JSON-RPC response. The issue is successfully closed (confirmed in the GitHub UI), but the MCP tool call hangs and the client must time out or be interrupted. Other issue_write update calls (e.g. editing the body or labels without a state change) return normally within a second or two.

Environment

  • github-mcp-server: 1.0.3 (commit 4bded57e02e9346cb1fd595156e07dea51f0fb29)
  • Transport: stdio (github-mcp-server stdio)
  • Auth: PAT via GITHUB_PERSONAL_ACCESS_TOKEN
  • OS: Linux (Ubuntu, Node 24 MCP client)
  • The server is reached through a proxy (callmux), but the symptom is at the JSON-RPC layer: the request is dispatched, the GitHub mutation lands, and no tools/call response message is ever sent back. The proxy only observes a pending call with no reply.

Reproduction

Call issue_write with a state transition to closed plus labels:

{
  "method": "update",
  "owner": "<owner>",
  "repo": "<repo>",
  "issue_number": 158,
  "state": "closed",
  "state_reason": "completed",
  "labels": ["infra", "fixed"]
}

Expected

The tool returns the updated issue (URL / number / state) within a couple of seconds, the same as any other issue_write update.

Actual

  • The issue is closed on GitHub (the underlying API mutation succeeds).
  • No response is returned to the MCP client — the tools/call never completes.
  • The client hangs until it hits its own call timeout (or is manually interrupted).

Impact

Because the call never returns, an agent driving the server has no way to know the operation succeeded. It either blocks for the full client-side timeout window or interrupts and may incorrectly treat the close as failed (and, worse, retry it). A consistently-returned response — even just the updated issue object — would resolve this.

Notes / guesses

The hang appears specific to the state-change-to-closed path (a plain label/body update on an open issue returns fine). It looks like the update handler may complete the mutation but block or fail to write the response when state: "closed" (possibly combined with state_reason / labels) is part of the same call. Happy to capture stderr / a protocol trace if that would help narrow it down.

Activity

  1. github-actions commented on Jun 18, 2026

    @github-actions
    Contributor

    AI Assessment: Ready for Review

    The bug report provides a clear and concise description of the problem, detailing the expected and actual behavior, as well as an affected version of the server. The steps to reproduce are specific and contain actual code without placeholders. There is adequate information in the "Impact" section which helps understand the significance of the issue.

    No template text or placeholders are present, and the issue is clearly articulated. This report is complete and can be triaged by a maintainer.

  2. github-actions commented on Jun 18, 2026

    @github-actions
    Contributor

    AI Assessment: Ready for Review

    The bug report provides a clear description of the problem, detailing a specific issue with the issue_write mutation when closing an issue. Information about the affected version, environment, and the exact steps to reproduce the behavior are included with detailed example payloads. The expected behavior is clearly defined, contrasting with the observed actual behavior. Additionally, the impact of the issue is explained well, highlighting the consequences of the incomplete response.

    All critical elements required for triaging the issue are present, with no template text or placeholders remaining, making it clear for the maintainer to review.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions