Skip to content

Errors ​

Every gbandit API answers a failure with an RFC 9457 Problem Details body, Content-Type: application/problem+json. That holds for the platform API, the CLI endpoints, and the platform's own answers on your game's address (/api while the backend is asleep, a game that doesn't exist, ...).

json
{
  "type": "https://docs.gbandit.com/errors#nothing-to-promote",
  "title": "Nothing to promote",
  "status": 409,
  "detail": "There is nothing in dev to promote yet. Run `gbandit deploy` first, then promote.",
  "request_id": "0b6f1c9e-…",
  "retryable": false
}
MemberMeaning
typeWhat kind of failure this is. Branch on this, never on title or detail. about:blank means nothing beyond the status code.
titleShort, fixed summary of the type.
statusThe HTTP status, repeated.
detailWhat happened this time and what to do about it. Written to be shown to a person.
request_idThe id the platform logged the request under. Quote it when you ask for help.
retryableWhether sending the same request again can succeed.
issuesField-level problems, each with path, message and docs_url.
diagnosticsRaw technical output, such as git's stderr. Useful for debugging, not for showing by default.

A type can add members of its own; they are listed under it below. Ignore members you don't know.

platform-error ​

5xx. Something broke on our side, not in your code or your request. The detail never says why; quote the request_id when you ask for help. Retry when retryable is true.

Deploying and promoting ​

nothing-to-promote ​

409. gbandit promote with nothing in dev to promote. Run gbandit deploy first.

cli-outdated ​

426. The gbandit CLI is older than the oldest version the platform supports. Run gbandit update.

config-missing ​

422. The uploaded source has no gbandit.jsonc at its root. See gbandit.jsonc.

invalid-config ​

422. gbandit.jsonc does not validate. issues lists every problem, each with the path in the file, a message, and a docs_url to the section that explains it.

google-account-required ​

403. A guest account tried to run a backend or a database, or to use the AI agent. Log in with Google (gbandit login); your projects come with you.

database-removal-requires-confirmation ​

409. The deploy or promotion would remove a provisioned database, which deletes its data. Repeat it with the confirmation; see Removing a database.

project-suspended ​

403. The project's creator has been suspended, so the project is neither served nor changed. The game's address answers with it too, and a browser gets a page saying the game is suspended. Questions go to abuse@gbandit.com.

Signing in ​

These come from auth.gbandit.com, including POST /api/token; see Authentication.

account-suspended ​

403. The platform has suspended this account. Signing in again can't help, so don't send the player to the login page. Questions go to abuse@gbandit.com.

session-expired ​

401. The player's session expired, and it belonged to an account they can sign back in to. Send them to sign in instead of carrying on as a new guest.

guest-limit-reached ​

429. The player's network already holds as many guest accounts as it may. Send them to sign in.

authorization-pending ​

400. gbandit login polls while the login waits in the browser, and gets one of these four answers until it is done. This one means nobody has approved it yet; poll again after the interval the start of the login gave.

access-denied ​

400. The person denied the login in the browser. Stop polling.

expired-token ​

400. The login expired before anyone approved it. Start a new one.

invalid-grant ​

400. The device code names no login, or the login was already completed. Start a new one.

Project data ​

no-database ​

409. The environment declares no database, so there is nothing to query. See Databases.

ai-spend-paused ​

402. The weekly AI budget is used up, so new messages are refused until the reset. Work that is already running may finish. usage carries the budget and reset_at.

Your game's address ​

These come from the platform, not from your backend, when a request to your game's domain can't reach it. A browser navigation gets a page instead.

game-not-found ​

404. No project has this name.

nothing-deployed ​

404. The project exists, but nothing has been deployed to this environment.

no-backend ​

404. The environment has no backend, so nothing answers /api.

game-starting ​

503. The backend was asleep and is starting. Retry after the number of seconds in Retry-After.

Linked repository ​

Git operations the agent's workspace runs against your linked repository.

divergent-history ​

409. The workspace and the remote both have commits the other doesn't. workspace and remote say how far ahead each side is and list its latest commits; remote_main_sha is the remote's main. Choose which side to keep.

git-auth-rejected ​

403. The Git host refused the deploy key. Check that the key is installed with write access, then try again.

git-host-unreachable ​

502. The Git host could not be reached. Check the remote URL and try again.

git-failed ​

500. Git failed for another reason, for example a protected branch. diagnostics holds git's output.

The agent ​

Messages to the agent that works on your Project.

conversation-not-found ​

404. The conversation doesn't exist. A conversation starts with its first message; start a new one.