GET /user/repos: `homepage` field declared as format "uri" but API returns empty string ""

Open Beginner friendly
#6,354 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
62/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
openapi
Domain
api

Research direction

Locate the repository schema and its homepage definition, then inspect the schemas used by GET /user/repos and GET /repos/{owner}/{repo}. Compare the declared URI constraint with responses where homepage is "" and validate the affected schemas; done means those responses pass while valid homepage URLs remain constrained.

Written by the indexing model from the issue text.

Description

documentation

Description

The repository schema declares the homepage field with format: "uri", but the GitHub API returns an empty string "" for repositories that have no homepage set.

An empty string is not a valid URI per RFC 3986, so MCP servers and other tools that validate API responses against this schema will reject the entire response with a schema validation error.

Error observed

When calling GET /user/repos (or any endpoint returning repository objects), tools that validate against this schema produce:

MCP error -32602: Structured content does not match the tool's output schema: 
data/result/23/homepage must match format "uri"

The offending field is homepage: "" — GitHub returns an empty string when no homepage has been set on a repo, rather than null or omitting the field.

Expected behavior

The schema should either:

  • Change homepage to allow null or an empty string alongside valid URIs (e.g. type: ["string", "null"] with the format: "uri" applied only when non-null/non-empty), or
  • Document that the API returns "" for unset homepages and update the format constraint accordingly

Steps to reproduce

  1. Call GET /user/repos or GET /repos/{owner}/{repo} for any repository that has no homepage URL set in its settings
  2. The response will contain "homepage": ""
  3. Validating this response against the current OpenAPI schema will fail on the format: "uri" constraint

Notes

  • This affects all repository-returning endpoints, not just /user/repos
  • The homepage field is likely nullable/optional in practice — the schema should reflect this
Dominant language
No language data
Stars
1.6k
Forks
342
Avg merge
3h 33m
Merged PRs (30d)
51

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/rest-api-description

All issues in github/rest-api-description

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.