Docs

Common problems

Symptoms and fixes for the problems people meet first: connection errors, temporary outages, e-mail, sign-in, rate limits, setup and roles.

This page collects the problems people run into first with K-Block Cloud, the dashboard and the Cloud API behind it. Each entry names the symptom you see, what it means and what you can do about it.

Most entries start from an error code. Find the code in the error notice, then jump to its section. For problems with agents, the Gateway or MCP servers, see Gateway and tools. For policies and approvals, see Policies and approvals. For receipt verification, see Receipt verification.

Read the error first

Every refusal of the Cloud API has the same JSON shape:

{
  "error": {
    "code": "RATE_LIMITED",          // stable, machine-readable
    "message": "too many requests",  // human-readable
    "details": { "retry_after_seconds": 42 } // optional, depends on the code
  }
}

The dashboard shows a refusal as an error notice with:

  • the API's message;
  • guidance for codes the dashboard knows (for example the wait of a rate limit);
  • Code: and Request ID:;
  • up to 20 validation issues, each with its own code (for a 400 VALIDATION_FAILED);
  • a Try again button where retrying makes sense.

The code tells you which section below applies. The request ID identifies this one request. When you contact K-Block support, give the code and the request ID: the request ID lets K-Block find exactly what happened.

For some problems on K-Block's side, which you cannot change, the notice shows no code and no message from the API. It says what happened in one of these sentences:

  • "The dashboard could not reach the K-Block service. Try again in a moment." (see The dashboard cannot reach the Cloud API);
  • "K-Block cannot send e-mail right now, so no message was sent." (see Verification e-mail does not arrive);
  • "Plans cannot be bought or managed here right now." (on the Billing page);
  • "K-Block could not complete this request because of a problem on its side." (any other such problem).

Then it says "If this keeps happening, contact K-Block support and give them the request ID below." and shows the request ID. When there is no request ID, it says "If this keeps happening, contact K-Block support and tell them when it happened." instead.

The dashboard cannot reach the Cloud API

The dashboard gets all its data from the Cloud API, the K-Block service behind it. When it cannot get an answer, the page or the action you tried shows an error notice. While your session loads, the notice is titled "Could not load your session" and has Try again.

What the notice saysWhat it means
"The dashboard could not reach the K-Block service. Try again in a moment." and "If this keeps happening, contact K-Block support and tell them when it happened."The dashboard could not get an answer from the Cloud API, or the Cloud API did not answer within 60 seconds. The problem is on K-Block's side: there is nothing for you to change. The notice shows no code and no request ID.
"The Cloud API could not be reached. Check your connection and try again." with the code NETWORK_ERRORYour browser could not reach the dashboard itself. The notice shows no request ID.

What you can do:

  1. Reload the page, or select Try again in the notice. The problem can be temporary.
  2. For NETWORK_ERROR, check your own connection first: that you are online, and that your VPN or proxy lets you reach the dashboard. Then reload the page.
  3. If the error continues, contact K-Block support. Tell them the time the error appeared, and give the code NETWORK_ERROR when the notice shows it.

K-Block is temporarily unavailable

When K-Block cannot handle a request safely right now, it refuses the request instead of guessing. The dashboard then shows a notice with the code 503 SERVICE_UNAVAILABLE and the API's message. For a temporary condition the notice also shows a wait, such as "Try again in 5 seconds". Programs that call the Cloud API get the same answer, with the wait in the Retry-After header.

MessageWaitWhat it means
"the database is unavailable; retry later"5 secondsK-Block cannot reach its stored data right now, so it did not complete the request.
"the service is busy; retry later"5 secondsToo many requests that check or set a password (sign-ins, sign-ups, password resets, password and e-mail changes) are being processed at once. Nothing was done.
"the service identity is not available"noneK-Block cannot use the Gateway identity that signs its evidence right now, so it did not complete the request. Retrying does not help until K-Block has fixed it.

What you can do:

  1. Wait for the time the notice shows, then select Try again or reload the page.
  2. If the notice comes back for more than a few minutes, or it has no wait, contact K-Block support with the code and the request ID.

Agents meet an unavailable database at the Gateway, with the code DATABASE_UNAVAILABLE: see The Gateway is unavailable.

Verification e-mail does not arrive

A new account can sign in only after its e-mail address is verified with the link from the verification e-mail. If the e-mail never arrives, the account is stuck at "Sign-in failed".

What you can do:

  1. Wait a few minutes. Check your spam or junk folder, and check that the address is spelled the way you signed up with it.
  2. Request a new link with Resend it (see below), then open the newest link. A new verification link replaces the earlier ones. Opening it asks for the account's password.
  3. Do not resend many times in a row. Each address receives at most 10 account e-mails per hour; above that, nothing more is sent, and you get no error.
SymptomWhat it meansWhat you can do
Sign-up or Resend it said a link is on its way, nothing arrivesSign-up and the resend answer the same way whether or not a message could be sent, so the answer does not confirm delivery. The message is sent after the answer.Check your spam folder and wait a few minutes, then use Resend it once. If still nothing arrives, contact K-Block support and say when you requested the link.
Nothing arrives after several resendsEach recipient address receives at most 10 account e-mails per hour. Above that, messages are skipped without an error to you.Wait an hour, then resend once.
"K-Block cannot send e-mail right now, so no message was sent." when you request a new link, a password reset or an e-mail changeK-Block cannot send e-mail at the moment. Until it can, new addresses cannot be verified and passwords cannot be reset.Try again later. If this keeps happening, contact K-Block support with the request ID the notice shows.
503 EMAIL_DELIVERY_FAILED when you change your account's e-mail addressK-Block could not hand the confirmation message to its e-mail service, so it cancelled the change. Your address is unchanged. Verification and password-reset links never return this code.Wait at least a minute (the answer carries Retry-After: 60), then request the change again. If it fails again, contact K-Block support with the code and the request ID.
400 INVALID_OR_EXPIRED_TOKEN when you open the linkThe link expired, was already used, or a newer link replaced it. Verification links are valid for 24 hours, password-reset links for 1 hour, and each works once.Request a new link and open the newest one.

To request a new verification link, use Resend it on the sign-in page after a refused sign-in, the /resend-verification page, or Send a new verification link on your account page. Resending is limited to one request per minute and 5 requests per hour for one address. The resend answers the same way for every address, so the answer does not tell you whether the address has an account.

Sign-in is refused

Symptom. The sign-in page shows "Sign-in failed" with "The e-mail address or the password is not right — or the account's address has not been verified yet". The API code is 401 INVALID_CREDENTIALS.

Cause. The Cloud API gives one answer for every refused sign-in, so the answer does not reveal which accounts exist. Any of these produces it:

  • no account has this address;
  • the password is wrong;
  • the account's e-mail address is not verified yet;
  • the account is disabled.

Fix.

  1. Check the address and the password.
  2. If you signed up recently, verify the address first: click Resend it in the notice, enter the address and open the new link (see Verification e-mail does not arrive).
  3. If you forgot the password, use Forgot password? to get a reset link.
  4. If your account may have been disabled, contact K-Block support. Owners and admins of an organization cannot disable or re-enable an account in the dashboard.

Other sign-in problems:

SymptomCauseFix
The Sign in button counts down ("Sign in (in …)")A sign-in rate limit is reached (see Rate limits).Wait for the countdown.
403 CSRF_FAILED "foreign Origin header"The dashboard is open at another address than its own: for example another host name, an IP address, or http instead of https.Open the dashboard at its own address, exactly as the links in your invitation and verification e-mails show it, and sign in again.
503 SERVICE_UNAVAILABLE with a waitK-Block is handling too many sign-ins or sign-ups at once (see K-Block is temporarily unavailable).Try again after the wait the notice shows.
400 VALIDATION_FAILED on the passwordPasswords are at most 256 characters; new passwords need at least 12.Correct the password.
You are signed out unexpectedlyYour session expired or was revoked (for example by a password reset on another device). The dashboard returns you to the sign-in page.Sign in again.

Rate limits

When you exceed a limit, the Cloud API answers 429 RATE_LIMITED with a Retry-After header and details.retry_after_seconds. The dashboard shows "Too many attempts. Try again in …" with that wait, and the sign-in, sign-up and reset forms count down before they let you retry.

The default limits of the Cloud API:

WhatLimit
Any request, per client IP1,200 per minute
Any authenticated request, per session or API key600 per minute
Sign-in, per client IP30 per 15 minutes
Sign-in, per IPv6 /48 network150 per 15 minutes
Sign-in, per e-mail address from one client IP10 per 15 minutes
Sign-in, per e-mail address from all networks (not counted for a browser that signed in to that address before)50 per 15 minutes
Sign-up, per client IP / per e-mail address10 / 5 per hour
Sign-up, per IPv6 /48 network50 per hour
Verification resend, per e-mail address / per client IP1 per minute and 5 per hour / 20 per hour
Password-reset request, per e-mail address from one client IP / per client IP5 / 20 per hour
Account e-mails, per recipient address10 per hour (skipped silently above it)
Password-reset e-mails, per recipient address5 per hour (skipped silently above it; the newest link sent stays valid)
Dry runs, per credential / per organization60 / 600 per minute
Policy simulations and reports, per organization10 per minute
Webhook test events and redeliveries, per endpoint5 per minute

If many people are refused at the same time, or sign-in to one account is locked for everyone after a few attempts, K-Block may be counting many users as one client. Contact K-Block support with the code and the request ID of one of the refusals.

The Gateway has its own limit per gateway API key: bursts of 120 requests, refilled at 20 requests per second. See Gateway and tools. For the full list of limits, see Limits and supported versions.

Setup mistakes

The Set up K-Block guide on the organization overview lists eight steps and marks each one done from the organization's real state. A step without a state could not be read. Most early problems come from a step that is not done yet.

StepWhat goes wrong when it is missing
Set the organization principalOnly an owner can do this, under Settings. Without a principal nothing can be delegated: calls are denied NO_PRINCIPAL and agents see no tools.
Bind your personal identityEach approver needs a personal K-Block identity, bound on the Account page (account menu, Account settings). Without anyone eligible, calls that need approval are denied NO_APPROVERS.
Register an MCP server and expose toolsA tool counts only when it is enabled, its MCP server is active and an owner or admin authorized its binding. A developer's tool is a disabled draft until then.
Activate a policyA saved policy version is a draft and changes nothing. Until a version is active, every call of the policy's agents is denied NO_POLICY.
Create an agentThe agent must be bound to the policy. An agent without a policy is denied NO_POLICY on every call.
Authorize the agentThe principal signs a delegation to the Gateway in the browser (owner or admin, with the principal key in that browser). Without a delegation that grants the tool's action, the tool is hidden from the agent and calls are denied NO_DELEGATION.
Create a Gateway API keyThe agent needs a gateway key (not a management key). It is shown once.
Send the first call through the GatewayThe agent's MCP client must use the Gateway's MCP endpoint (the Gateway's address followed by /mcp). The dashboard shows it right after you create a gateway API key, and in this guide. If it does not show it, contact K-Block support.

Other frequent mistakes:

  • Using the browser that does not hold the key. Delegations, cancellations and approvals are signed in the browser with keys stored in that browser, and each account uses only its own keys there: its personal keys, and the principals it generated or imported. On another browser or device, or in a browser profile where another account stored the key, import your key backup from your account page first.
  • Expecting a test key to be a sandbox. A kb_test_… key calls the same Gateway, policies and upstream tools as a kb_live_… key. Its environment (test or live) is recorded with every call and decides which observe windows apply; it does not send calls anywhere else.
  • Mixing management keys and gateway keys. Management keys call the Cloud API and are refused by the Gateway (401). Gateway keys call the Gateway and are refused by the Cloud API.

For the full walkthrough, see Setup guide and Your first protected action.

Refused by your role (403)

Every member has one role: owner, admin, approver, developer or viewer. The Cloud API reads your role again on every request, so a role change takes effect at once. The dashboard hides controls your role cannot use, but it takes your role from the session it loaded: after a role change, reload the page.

Code and messageCauseFix
403 FORBIDDEN "your role (…) does not allow this"The route needs a permission your role does not have. details names the permission and your role.Ask an owner or admin to do it, or to change your role.
403 ADMIN_REQUIREDThe change would alter what policies decide: enabling a tool, changing an enabled tool's action, name, description or amount mapping, switching an agent's policy, or re-pointing an MCP server whose tools are enabled. Only a signed-in owner or admin may do it.Ask an owner or admin. You can still edit disabled tools (drafts).
403 OWNER_REQUIREDOwner-only actions: observe settings, owner role changes and similar.Ask an owner.
403 FORBIDDEN "API keys cannot do this; sign in instead"A management API key called a route that needs a signed-in person (deciding approvals, activating policies, member management, audit log and others).Do it in the dashboard.
403 FORBIDDEN "the API key lacks the '…' scope"The management key does not have the scope the route needs. details.required_scope names it.Create a key with that scope.
403 EMAIL_NOT_VERIFIEDYour session belongs to an account whose address is not verified. Until it is, you can only manage your address and password.Open the verification link, or request a new one from your account page.
403 CSRF_FAILEDThe request's Origin or security token was refused. The dashboard refreshes the token and retries once on its own.Reload the page. If it persists, open the dashboard at its own address, exactly as the links in your invitation and verification e-mails show it, and sign in again. If it still fails, contact K-Block support with the code and the request ID.
404 for an organization you expect to seeYou are not a member of that organization (or a key belongs to another organization). The API answers 404, not 403, so it does not reveal which organizations exist.Ask an owner or admin for an invitation.

The role summary:

PermissionRoles
Read organization dataowner, admin, approver, developer, viewer
Decide approvals (when the approver rule admits you)owner, admin, approver
Create and edit agents, MCP servers, tools, policy drafts, gateway keys, webhooksowner, admin, developer
Activate policies, enable tools, sign delegations and cancellations, manage members, management keys and settingsowner, admin
Read the audit logowner, admin
Billing, ownership, the organization principal, observe settingsowner

See Roles and permissions for the complete matrix and API keys for key scopes.

Next steps