Forgejo and Gitea: the search for pull requests answered 400 "user does not exist"
Pull requests across repositories come from GET /api/v1/repos/issues/search?type=pulls: with owner= for the repositories of one user or organization, and with review_requested=true, reviewed=true or created=true for the ones that concern you. When the server will not run the search, it answers 400 or 422 with the reason in message. The answers below are what Codeberg (Forgejo) and gitea.com said on October 25, 2026, with what the source of both Forgejo and Gitea does behind them.
HTTP/1.1 400 Bad Request
{"message":"user does not exist [uid: 0, name: old-name]","url":"https://codeberg.org/api/swagger"}
400 and 422: what the server says, and why
user does not exist [uid: 0, name: NAME](400): the server has no user or organization named NAME, the value ofowner=. The search looks the owner up by its current name only, without following the redirect a rename leaves (in both Forgejo and Gitea). So it answers this for a misspelled name, and also for the old name of a user or organization that was renamed, even though the repository's old address still redirects to the new one. An organization works asowner=as well as a user. The same words with an empty name,[uid: 0, name: ], and 401 are about the token instead (see what the 401 means).Owner organisation is required for filtering on team(400; gitea.com starts it with a lower-case "owner"):team=was sent withoutowner=.team does not exist [org_id N, team_id 0, name: NAME](400): the organization inowner=has no team named NAME.parsing time "…"(422):since=orbefore=is not a date and time the server can read, such as2026-10-01T00:00:00Z.
200, but the list is not what you asked for
- Without a token,
review_requested,reviewedandcreatedare ignored. The source applies them only for a signed-in user. Without a token, a search withreview_requested=trueorcreated=trueanswered with as many pull requests as one without it, on both servers: every open pull request of every public repository. - Which repositories are searched: with
owner=, that owner's repositories you can see. Without it, the public repositories on the server and the private ones your account can see; with a token limited to public repositories, only the public ones. - Page size:
limitis capped at the server's maximum, 50 by default (MAX_RESPONSE_ITEMS):limit=500answered 50. Read further withpage=;X-Total-Countgives the total.
What to do
user does not exist: open the owner's page on the server to check the spelling. If the owner was renamed, opening the repository's old address in the browser takes you to the new name: search under it, and point the clone at the new address (see renamed or transferred repositories).- Teams: send
owner=with the organization, and the team's name as the organization's Teams page shows it. - Dates: send the date with a time and time zone.
- Filters by you: send a token with the search.
Forgejo and Gitea pull requests in IntelliJ IDEA
Pull Request Inbox for Forgejo and Gitea, a plugin by Lesstep for JetBrains IDEs 2024.1 or later, uses the server's search for the scopes "Their owner" and "Everywhere": with owner= for the owner of each open repository, and with review_requested, reviewed and created for the lists "Waiting for my review", "I am a reviewer" and "Created by me". Without a token it lists all open pull requests, with the filters by you turned off (the server would ignore them), and for "Everywhere" it asks for a token instead of searching. When the server refuses a search, it shows the server's words. From version 1.0.19, for "Their owner" after the owner was renamed, it asks the server where the repository is now and searches under the owner's new name; when the server knows no such owner, it says so. Each list holds up to 200 pull requests, most recently updated first. Reading is free; approving, commenting and merging are Pro (US$1.50 a month, with a 30-day trial).
Forgejo, Gitea and Codeberg are names of their respective owners; IntelliJ IDEA is a trademark of JetBrains s.r.o. This page is not affiliated with or endorsed by the Forgejo project, Codeberg e.V., the Gitea project or JetBrains.
More: 404 "The target couldn't be found." and "not found" · 401 "token is required" and unknown tokens · "token does not have at least one of required scope(s)" · Forgejo and Gitea merge refused (405, 409) · Forgejo and Gitea merge when checks succeed refused (405, 409, 500) · Forgejo and Gitea review refused (422) · Forgejo and Gitea branch update refused (403, 409, 422) · Forgejo and Gitea pull request not created (409, 422, 403) · Forgejo and Gitea comment refused (403, 422, 400) · Forgejo and Gitea pull request files (pages of 50, changed_files) · Forgejo and Gitea pull request plugins for IntelliJ IDEA, compared · 日本語