Skip to main content
request-limit-exceeded is the Alpic reason code returned when a team on the Free plan has used every request that plan includes for the current billing period. Paid plans are never refused: requests beyond the included allowance are billed as overage. It is a stable identifier: match on it rather than on the message text, which may be reworded.
This reason code is not returned today. Request limits are counted but not enforced. This page documents the response shape so clients can handle it before enforcement is turned on.

The response

The request is refused at admission. It never reaches your MCP server, and it is not counted against your plan.
  • HTTP status: 402 Payment Required
  • JSON-RPC error code: -32002
  • Alpic reason code: request-limit-exceeded, under the reserved alpic/reason key

What counts as a request

Every settled MCP request counts, whatever its outcome — including initialize, tools/list and ping. Because the check runs at admission, a refused request is not added to your count. The limit applies to the whole team, across every project and environment, for the current billing period. See Plans for the requests included in each plan and the overage rate.

Handling it in a client

initialize goes through the same check, so a Free-plan team over its limit fails at connection time. Most MCP clients render that as a generic “server unavailable” rather than showing the message, so treat a 402 on connect as a quota problem, not an outage.

What to do

Check the current period’s usage against your allowance on your team’s billing page in the dashboard, then move to a paid plan — see Plans. Paid plans keep serving requests beyond their included allowance and bill the extra, so this reason code cannot be returned once you are on one. A new billing period starts your count again from zero.