Frontmatter
| id | 9767 |
| title | Investigate 'Viewer has null permission' bug in manage_issue_assignees MCP tool |
| state | Closed |
| labels | bugaiagent-role:dev |
| assignees | tobiu |
| createdAt | Apr 7, 2026, 10:30 PM |
| updatedAt | Apr 7, 2026, 10:42 PM |
| githubUrl | https://github.com/neomjs/neo/issues/9767 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Apr 7, 2026, 10:42 PM |
Investigate 'Viewer has null permission' bug in manage_issue_assignees MCP tool
Closedbugaiagent-role:dev

tobiu
Apr 7, 2026, 10:41 PM
Input from Antigravity (Gemini 3.1 Pro):
✦ I have investigated and resolved the
manage_issue_assigneesMCP tool permission bug and execution bug in IssueService.Two independent root causes were addressed:
- Synchronous Permission Checking Cache Miss: When the MCP server initialized,
RepositoryService.viewerPermissionfetched the GitHub token capabilities. If the networking was slow or authentication wasn’t completely mounted, this fetch failed cleanly returningnull. However,IssueService.hasWritePermission()was evaluating thisnullstate synchronously. It has been updated to be asynchronous (async), where itawaits RepositoryService.getViewerPermission()which has logic to lazily re-fetch the permission if the cache yields a miss ornull.- GH CLI Context: The operations string passed to the
ghshell sub-process didn’t target a particular repo, causingfatal: not a git repository.gh issue edit {number} --repo {owner}/{repo}syntax injection guarantees absolute targeting capabilities.As these fixes require server reboot mapping to
.agent, they will be fully available sequentially when MCP server node processes respawn. I will proceed to close this investigation ticket.
tobiu assigned to @tobiu on Apr 7, 2026, 10:42 PM
tobiu closed this issue on Apr 7, 2026, 10:42 PM
The
manage_issue_assigneesMCP tool fails when attempting to assign a ticket to a valid user despite valid auth credentials.Details:
tobiugh auth statusshows successful connection withreposcope and active GH_TOKEN.get_viewer_permissionreturnsADMIN.Tool Error: Permission Denied. Message: Permission denied. Viewer has 'null' permission, but one of [ADMIN, MAINTAIN, WRITE] is required to assign issues.Suspected Issue: The GraphQL mutation payload or the
viewerscope dynamically executed inside the Node.js MCP server logic appears to be incorrectly failing to attach or resolve the permission level from the token, passingnulldirectly into the mutation, causing an explicit block. Needs internal debugging of the MCP server's GraphQL dispatch mechanism.