How to diagnose webhook failures in Console
Use this page as the main diagnosis flow for webhook failures, parsing issues, route mismatches, sizing problems, and exchange-side rejections.
Fast diagnosis rule Check in this order: accepted, connection, bot name, symbol, size, provider outcome.
Fast diagnosis order: accepted, connection, bot, symbol, size, outcome
Section titled “Fast diagnosis order: accepted, connection, bot, symbol, size, outcome”| Step | Question | If no |
|---|---|---|
| 1 | Was the request accepted? | fix sender or request transport first |
| 2 | Did the token hit the correct connection? | fix the webhook URL |
| 3 | Did the bot name match that connection? | fix the payload bot name |
| 4 | Did the symbol resolve correctly? | fix the symbol or provider mapping |
| 5 | Did the size resolve above zero and exchange minimums? | fix amount, position, or sizing suffixes |
| 6 | Did the provider accept the final order? | inspect the exchange response and field values |
How to tell setup errors from exchange rejections
Section titled “How to tell setup errors from exchange rejections”Failures before provider outcome are usually setup, token, bot, symbol, or payload problems. Failures after provider outcome are usually exchange-side rejects.
1. Request accepted?
Section titled “1. Request accepted?”If the request was not accepted, stop there. Do not reason about symbol, size, or exchange response yet.
2. Correct connection?
Section titled “2. Correct connection?”The token in the webhook URL chooses the saved connection. If that token is wrong, the request is already running in the wrong context.
Example:
https://YOUR-API-DOMAIN/api/automaton/webhook/TOKEN_FOR_BETAALPHA(BTCUSDT){type=market,side=buy,amount=0.001}3. Bot name matched?
Section titled “3. Bot name matched?”The token resolves one saved connection, but the payload can still name another bot.
Example:
URL token belongs to: ALPHAPayload sent: BETA(BTCUSDT){type=market,side=buy,amount=0.001}4. Symbol resolved?
Section titled “4. Symbol resolved?”Make sure the parsed symbol and provider context match the market you intended to trade.
5. Size resolved above zero?
Section titled “5. Size resolved above zero?”Many “valid” commands fail here.
Typical causes:
%pused while there is no open position- available balance is too low
- total balance is too low
- the final size rounds below exchange minimums
Concrete example:
ALPHA(BTCUSDT){type=market,side=sell,amount=100%p,reduceOnly=true}If there is no current position, 100%p resolves from zero.
6. Provider accepted the order?
Section titled “6. Provider accepted the order?”Even after syntax and sizing are valid, the provider can still reject the final instruction because of:
- step size
- minimum quantity
- minimum notional
- post-only constraints
- symbol-specific rules
When to stop retrying and fix the payload first
Section titled “When to stop retrying and fix the payload first”If the request failed on acceptance, parsing, bot match, symbol resolution, or sizing, stop retrying and fix the payload or connection first.
Syntax still matters
Section titled “Syntax still matters”The parser expects this structure:
BOTNAME(SYMBOL){ command; command; command; }Bad example:
ALPHA BTCUSDT type=market side=buy amount=0.001Good example:
ALPHA(BTCUSDT){type=market,side=buy,amount=0.001}Best workflow for every new command
Section titled “Best workflow for every new command”- start with a tiny size
- use one simple symbol
- keep Console open
- send the payload
- confirm the correct connection
- confirm the correct bot name
- confirm the resolved behavior
- only then move it into automation