errors: owner_repo with an unknown owner surfaces bare "API error 404: GetUserByName" instead of a typed, explained error #173

Closed
opened 2026-07-16 23:16:03 +00:00 by hexajon · 0 comments
hexajon commented 2026-07-16 23:16:03 +00:00 (Migrated from codeberg.org)

Hit live today: madt_issues action=create owner_repo=<org>/<repo> where the org exists on a different forge than the session's resolved one. The forge resolution was correct and by design (owner_repo selects a repository on the session's forge, never a different forge), but the failure surfaced as:

API error 404: GetUserByName

That is a bare 404 wearing an internal endpoint name - from the tool whose comparison row promises "a typed, explained error instead of a bare 404". This exact mistake (pointing owner_repo at a repo that lives on another forge) is one of the most foreseeable ways to hold it wrong in a multi-forge world, and the error names neither the owner it looked up, the forge it asked, nor the remedy.

Wanted, roughly:

owner "acme" not found on codeberg.org. owner_repo selects a repository on the
session's forge - it never switches forges. To act on a repo hosted elsewhere,
target a local clone of it (dir=), or run from a session authenticated for that
forge.

Acceptance:

  • unknown-owner (and unknown-repo) 404s on owner_repo calls name the owner/repo tried, the forge host asked, and the fix
  • the raw endpoint identifier (GetUserByName and friends) never reaches the user-facing message
  • covered for both surfaces (CLI and MCP) by the shared error path, with a test pinning the message shape
Hit live today: `madt_issues action=create owner_repo=<org>/<repo>` where the org exists on a *different* forge than the session's resolved one. The forge resolution was correct and by design (`owner_repo` selects a repository on the session's forge, never a different forge), but the failure surfaced as: ``` API error 404: GetUserByName ``` That is a bare 404 wearing an internal endpoint name - from the tool whose comparison row promises "a typed, explained error instead of a bare 404". This exact mistake (pointing `owner_repo` at a repo that lives on another forge) is one of the most foreseeable ways to hold it wrong in a multi-forge world, and the error names neither the owner it looked up, the forge it asked, nor the remedy. Wanted, roughly: ``` owner "acme" not found on codeberg.org. owner_repo selects a repository on the session's forge - it never switches forges. To act on a repo hosted elsewhere, target a local clone of it (dir=), or run from a session authenticated for that forge. ``` Acceptance: - [ ] unknown-owner (and unknown-repo) 404s on `owner_repo` calls name the owner/repo tried, the forge host asked, and the fix - [ ] the raw endpoint identifier (`GetUserByName` and friends) never reaches the user-facing message - [ ] covered for both surfaces (CLI and MCP) by the shared error path, with a test pinning the message shape
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea#173
No description provided.