Sari la conținut

Troubleshooting

Acest conținut nu este încă disponibil în limba selectată.

Most problems fall into one of four groups: the command-line client, signing in to the API, getting onto a blade, and credits. Find the symptom below.

pipx install rb-cli fails with No matching distribution found

Section titled “pipx install rb-cli fails with No matching distribution found”

The rb client is not currently published, so it cannot be installed. Nothing you need depends on it: start self-serve sessions in the web app (see the Quickstart) and use the REST API for events, event blades, credits and inference. The CLI reference maps each rb command to its equivalent.

An installed copy says it cannot reach the API

Section titled “An installed copy says it cannot reach the API”

Older releases default to an API path that no longer exists.

Terminal window
export RB_API_URL=https://api.razorbridge.eu/v1
rb doctor

Add the export to your shell profile. If rb doctor still cannot reach the API, check whether a proxy or campus firewall is in the way — any HTTP response at all, including a 401, counts as reachable.

Access tokens last an hour. Get a new one with POST /v1/auth/refresh/ and your refresh token; if that fails too — you have been away for more than 30 days or your sessions were revoked — start the device flow again.

Section titled “The verification link shows JSON instead of a sign-in page”

The verification_uri returned by api.razorbridge.eu points at the API host, which does not serve the approval page. Open https://razorbridge.eu/hub/compute/auth/verify/ instead and type the code there. Approval does not require the browser to be on the same machine as the client.

The code is valid for 15 minutes. Start the device flow again and approve it promptly.

Sign-in start is limited to 10 attempts per hour from one IP address — easy to hit from a shared campus address during a workshop. Wait, then try again; the count resets an hour after the first attempt in the window.

Codes are eight characters and case-insensitive on entry. Code already used means that code has been redeemed; start the device flow again.

My session is not in the API’s blade list

Section titled “My session is not in the API’s blade list”

Self-serve sessions are managed only in the web app; GET /v1/blades/ and the other blade endpoints cover event blades. Use SSH on the session’s row under GPU Sessions.

Blades are created shortly before the event’s start time — about 30 minutes ahead — not when you join. GET /v1/events/<slug>/ shows the start time, and its blade field is null until yours exists.

Credentials not yet assigned, or SSH details aren’t available yet

Section titled “Credentials not yet assigned, or SSH details aren’t available yet”

The blade exists but is not finished. Wait a minute or two and look again; connect once the status is running. pending and provisioning both mean not yet.

Connection refused, or SSH hangs, on a running blade

Section titled “Connection refused, or SSH hangs, on a running blade”

The machine is up but its SSH service may still be starting. Wait 30 seconds and retry. If it persists, fetch the credentials again rather than reusing an old command — a replaced blade has different ones.

A blade that fails a health check mid-event is terminated and replaced. The replacement has a new IP, port and password, and an empty disk. A self-serve blade that fails a health check is stopped instead; start a new session.

That is expected: blade access is password-based, so ssh, scp, rsync and editors all prompt. Install sshpass if you need a fully non-interactive flow.

VS Code or another editor cannot find the blade

Section titled “VS Code or another editor cannot find the blade”

Add a Host block to ~/.ssh/config with the blade’s IP as HostName, and its Port and User — see the tip in the Quickstart. Then use Remote-SSH: Connect to Host and pick that alias. Update it after a blade is replaced: the host and password will have changed.

scp and rsync are not native. Install WSL and work from the WSL terminal. The OpenSSH optional feature in Windows also provides scp.

Check Credits in the web app. Remember that a running session holds the cost of its whole duration, so your available credit can be lower than the balance shown.

  • In an event? The organizer’s account pays for event blades, so this is about your own sessions or inference calls. Ask your organizer for a key or a session rather than credit.
  • On your own? Credit is granted on request — email hello@razorbridge.eu. There is no self-serve purchase yet.

An inference call whose maximum possible cost your available credit cannot cover returns 402 immediately rather than running.

Starting a session is refused with an amount

Section titled “Starting a session is refused with an amount”

The check is up front and for the whole duration you asked for, not for a minute of it, and against your available credit — balance minus what running sessions already hold. Choose a shorter duration, a cheaper GPU, or ask for a grant.

A new account may run two self-serve blades at once. Stop one, or ask for the limit to be raised.

This session would exceed your … monthly spend cap

Section titled “This session would exceed your … monthly spend cap”

A new account is capped at €50 of spend per calendar month. The message names the cap and how much of it you have used. Ask KlusAI to raise it — for a course, do this before the term starts.

A session stopped before its duration was up

Section titled “A session stopped before its duration was up”

Two possibilities, both deliberate: its accrued cost reached your available balance, or someone chose Stop. Nothing else stops a running blade early — idleness in particular does not.

Self-serve GPU sessions are temporarily paused for maintenance

Section titled “Self-serve GPU sessions are temporarily paused for maintenance”

New sessions are being refused on purpose while something is fixed. Blades already running are unaffected. Try again shortly.

The code did not match. Codes are four letters, a hyphen and four digits (ABCD-1234) and are not case-sensitive, so it is normally a transcription slip or a code from a different environment. Check it with your organizer.

Registration closed, Event is full, Already registered

Section titled “Registration closed, Event is full, Already registered”

In order: the event has ended or is in a state that no longer accepts registrations; the participant cap is reached — the organizer must raise it by creating capacity, since the cap is not editable; or you are already on the roster and need do nothing more.

GET /events/ABCD-1234/ says the event does not exist

Section titled “GET /events/ABCD-1234/ says the event does not exist”

Event detail takes the event slug, not the join code. Get the slug from GET /v1/events/.

The event start time passed and nothing was provisioned

Section titled “The event start time passed and nothing was provisioned”

Check its status on the event page:

  • Awaiting approval — the chosen GPU was unavailable and only a more expensive option would work, so razorBridge is waiting rather than overspending. The offer expires after about an hour.
  • Expired — that offer was not answered in time. Nothing was charged and nothing was provisioned.
  • Failed — the organizing account could not cover the estimated cost, or no capacity could be found at all.

All three are organizer problems, and the first two are avoided by funding the account with headroom above the estimate.

It is not wired up yet. Extend through the API instead — see Run an event.

Check which credential you sent. /gate/chat/completions and /gate/models want a AI Gateway key beginning rb-gate-; everything else wants the session token. Also check the key has not been revoked under Inference → API keys. An installed rb client’s rb gate models always fails this way, because it sends the session token; use the curl form.

Streaming is not supported by this endpoint (400)

Section titled “Streaming is not supported by this endpoint (400)”

Streamed responses are not available. Send the request without "stream": true.

Model '…' not allowed for this key (403)

Section titled “Model '…' not allowed for this key (403)”

The key was created with a restricted model list. Use an allowed model, or create a key without restrictions.

That key has spent its lifetime cap. Create another, or ask for the cap to be raised.

  • Add -v to a curl call to see the full HTTP exchange.
  • For anything about a specific event — a missing blade, a code that will not work, a session that ended early — your organizer can see more than you can.
  • For platform problems, email hello@razorbridge.eu.