Limits and errors

Limits

WhatLimit
Calls one user makes, across all apps30 per 60 seconds
Calls one user makes to one app10 per 60 seconds
Calls one app receives from everyone600 per 60 seconds, unless a site administrator set another limit for the app
Cards a room bot posts into one room10 per 60 seconds
Time to connect to your webhook2 seconds
Time for your webhook's whole reply5 seconds, up to 120 when a site administrator raises it for your app
Reply size32768 bytes
Calls to one app at the same time8
Steps in one multi-step form8
Manifest size65536 bytes
Apps one account owns20
Testers per app20
Apps one user installs200
Activity logkept 30 days

Payments

The defaults for money in and out of an app; a site administrator can raise them per app. Amounts are in the currency's own unit. See the Payments page.

WhatLimit
Platform fee3.0 % of every charge, taken from the app's side
CurrenciesUSDBG
One chargeat most 100
One payout or refundat most 200
Payouts and refunds by one app in one day (UTC)at most 2000
Charges to one user by one app in one day (UTC)at most 500
Payment requests waiting for one user's answer, per app3
How long a payment request waits10 minutes unless the app says otherwise, at most 60

Commands, flows, views, blocks and cards have their own limits, listed with each field in the Manifest and Cards pages.

What users see

When something goes wrong, the user gets a message in their own language. Your app's own words reach them only through a {"type": "error"} reply.

CauseWhat the user is told
Your webhook replied {"type": "error", "userMessage": ...}Your userMessage.
An answer breaks a form ruleWhich answers are not valid. Your webhook is not called.
Your webhook did not answer in timeThe app took too long to answer.
Your webhook could not be reached, answered with status 500 or more, or is paused after repeated failuresThe app is not answering right now.
Your webhook answered with status 400 to 499, or a reply that breaks the contractThe app sent a reply that could not be shown.
Too many callsTo slow down and try again shortly.
The app is not installed, suspended or blocked, or the command is not allowed in this kind of room Why the app cannot be used here.

The Activity tab shows you the exact reason for each failure, such as which field of a reply broke the contract.