github/github-mcp-server · error

update_project_item requires either item_id, or item_owner +

Error message

update_project_item requires either item_id, or item_owner + item_repo + issue_number to resolve the item by issue

What it means

Error "update_project_item requires either item_id, or item_owner + item_repo + issue_number to resolve the item by issue" thrown in github/github-mcp-server.

Source

Thrown at pkg/github/projects_resolver.go:576

		projectItems = nextPageQuery.Repository.Issue.ProjectItems
	}

	return "", 0, ghErrors.NewStructuredResolutionError(
		"item_not_in_project",
		fmt.Sprintf("%s/%s#%d", issueOwner, issueRepo, issueNumber),
		"the issue exists but is not an item on the named project; add it first via add_project_item",
		nil,
	)
}

// resolveItemIDFromIssueArgs reads (item_owner, item_repo, issue_number) from args
// and resolves them to a project item ID. Returns a single friendly error if any input is missing.
func resolveItemIDFromIssueArgs(ctx context.Context, gqlClient *githubv4.Client, owner, ownerType string, projectNumber int, args map[string]any) (int64, error) {
	issueOwner, ownerErr := RequiredParam[string](args, "item_owner")
	issueRepo, repoErr := RequiredParam[string](args, "item_repo")
	issueNumber, numErr := RequiredInt(args, "issue_number")
	if ownerErr != nil || repoErr != nil || numErr != nil {
		return 0, fmt.Errorf("update_project_item requires either item_id, or item_owner + item_repo + issue_number to resolve the item by issue")
	}
	return resolveProjectItemIDByIssueNumber(ctx, gqlClient, owner, ownerType, projectNumber, issueOwner, issueRepo, issueNumber)
}

func parseInt64(s string) (int64, error) {
	return strconv.ParseInt(s, 10, 64)
}

// resolveFieldNamesToIDs resolves field names to numeric IDs in one GraphQL
// hop. Fails fast with a structured error on any unresolved or ambiguous name.
func resolveFieldNamesToIDs(ctx context.Context, gqlClient *githubv4.Client, owner, ownerType string, projectNumber int, names []string, idParameter string) ([]int64, error) {
	if len(names) == 0 {
		return nil, nil
	}

	all, err := listAllProjectFields(ctx, gqlClient, owner, ownerType, projectNumber)
	if err != nil {
		return nil, err

View on GitHub (pinned to 0ea1f775a7)

When it happens

Trigger: Thrown at pkg/github/projects_resolver.go:576 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of github/github-mcp-server@0ea1f775a7 (2026-08-15). Data as JSON: /api/errors/18917ba91a268f62. Report an issue: GitHub.