Back to Webhook Messages
Webhook Messages

Invalid Formula Reference

A formula references a name that is not available: either signal. for a missing payload field, or rounding. for an unsupported rounding mode. See invalid-formula-reference in the reference manual.

A formula references a name that cannot be resolved when the expression runs. This usually means one of the following:

Missing payload field (signal.<key>)

  • The name is misspelled or uses the wrong casing (JSON keys are case-sensitive).
  • The field is missing from the webhook JSON (for example you reference signal.entryPrice but only sent closePrice).
  • You used a bare identifier (for example closePrice) instead of the required signal.<field> form.
  • A nested path is wrong (for example signal.extras.atr when the payload key is ATR).

Formulas can read top-level keys and nested object properties from the same webhook payload — for example signal.limitPrice, signal.extras.ATR, or signal.extras["ATR"]. JSON arrays remain arrays (for example min(signal.values)). If a nested key is missing, the formula fails with this error and the message includes the nested path (for example extras.doesNotExist).

Unknown rounding mode (rounding.<mode>)

The third argument to round() may use the built-in rounding context, for example rounding.halfEven. Property names are camelCase. Legacy PHP constant-style names (for example rounding.HALF_EVEN) are not supported.

Supported names:

  • rounding.halfAwayFromZero, rounding.halfTowardsZero, rounding.halfEven, rounding.halfOdd
  • rounding.towardsZero, rounding.awayFromZero, rounding.negativeInfinity, rounding.positiveInfinity

You may also pass an integer from 1 to 8 as the third argument to round().

Typical error details (webhook log)

The formula in field limitPrice references entryPrice, which is not present in the payload.

The formula in field x references rounding.unknownMode, which is not a supported rounding mode.

(The field name and the missing identifier are filled in for your request.)

Incorrect (missing payload key)

{
  "ticker": "SPY",
  "action": "buy",
  "closePrice": "450.25",
  "limitPrice": "=signal.entryPrice + 0.5"
}

entryPrice was never sent, so the reference cannot resolve.

Incorrect (missing signal. prefix)

{
  "ticker": "SPY",
  "action": "buy",
  "closePrice": "450.25",
  "limitPrice": "=closePrice + 0.5"
}

Use signal.closePrice so the expression reads from the payload context.

Incorrect (unknown rounding mode)

{
  "ticker": "SPY",
  "action": "buy",
  "x": "=round(2.5, 0, rounding.HALF_EVEN)"
}

Use rounding.halfEven instead.

Correct

{
  "ticker": "SPY",
  "action": "buy",
  "closePrice": "450.25",
  "limitPrice": "=signal.closePrice + 0.5"
}

Correct (nested object under extras)

{
  "ticker": "SPY",
  "action": "buy",
  "quantity": "=signal.extras.riskBudget / signal.extras.ATR",
  "extras": {
    "ATR": 53,
    "riskBudget": 150
  }
}

Related errors

  • Invalid formula dependency — the name you referenced is another field whose value starts with = (chained formulas are not supported). Use a single formula or send a literal value for the intermediate field.
  • Invalid formula syntax — the expression could not be parsed at all; fix operators and parentheses first, then re-check field names.
  • Invalid formula runtime — an integer outside 1–8 was passed as round()'s third argument; use a rounding.* name or a valid mode integer.

Start trading at scale today. Sign up for free.

Free 7-day trial

Set-up in 3 minutes

Paper account for testing

TradersPost operates as a non-custodial automated trading platform, enabling users to connect alerts from their preferred trading platforms to their selected brokerage or exchange accounts. It abstains from the transmission, custody, or management of customer funds, covering both traditional and cryptocurrency assets. Typically, registration requirements set by regulatory entities such as the SEC, FINRA, or FinCEN apply to entities that hold or transmit customer funds. To ensure ongoing compliance, TradersPost regularly engages with regulatory authorities to confirm its adherence to all relevant local and federal laws.

TradersPost does not provide alerts, signals, research, analysis, or trading advice of any kind. It is designed to assist traders and investors in making their own trading decisions based on their alerts. The platform does not offer recommendations regarding securities to buy or sell, nor does it provide trading or investing advice. The platform and its features, capabilities, and tools are provided 'as-is' without any warranty.

Risk Disclosure: The use of automated trading systems involves inherent risks, including the potential for significant financial loss. These systems operate based on predetermined algorithms that may not fully adapt to changing market conditions, possibly making them unsuitable for some investors. Individuals are advised to thoroughly assess their financial situation and risk tolerance before using this platform.

Testimonials appearing on this website may not be representative of other clients or customers and is not a guarantee of future performance or success.

Broker, exchange, trading platform, company names, product names, service marks, trademarks, and logos appearing on this website are the property of their respective owners and are used solely to identify supported connections and technical compatibility. TradersPost is an independent third-party platform and is not affiliated with, endorsed by, sponsored by, or authorized by any of these organizations unless expressly stated. Technical compatibility does not imply a commercial partnership, sponsorship, endorsement, or authorization. See Important Disclosures for trademark information.

© 2026 TradersPost, Inc. All rights reserved.