nautechsystems/nautilus_trader · error
Unsupported trigger type for Kraken Spot: {other:?} (only La
Error message
Unsupported trigger type for Kraken Spot: {other:?} (only LastPrice and IndexPrice supported) What it means
Kraken Spot only supports trigger references based on the last traded price or the Kraken index price. The adapter maps TriggerType::IndexPrice to Kraken's "index" trigger and leaves LastPrice/Default unset; any other TriggerType (e.g. MarkPrice) has no Kraken Spot equivalent, so it is rejected rather than mis-mapped.
Source
Thrown at crates/adapters/kraken/src/http/spot/client.rs:3113
if let Some(trigger) = trigger_price {
builder.price(trigger.to_string());
}
if let Some(limit) = price {
builder.price2(limit.to_string());
}
} else if let Some(limit) = price {
builder.price(limit.to_string());
}
if is_conditional {
match trigger_type {
Some(TriggerType::IndexPrice) => {
builder.trigger("index".to_string());
}
Some(TriggerType::LastPrice | TriggerType::Default) | None => {}
Some(other) => {
anyhow::bail!(
"Unsupported trigger type for Kraken Spot: {other:?} (only LastPrice and IndexPrice supported)"
);
}
}
}
if !oflags.is_empty() {
builder.oflags(oflags.join(","));
}
if let Some(tif) = timeinforce {
builder.timeinforce(tif);
}
if let Some(expire) = expiretm {
builder.expiretm(expire);
}
View on GitHub (pinned to 18893faf8b)
Solutions
- Change trigger_type to TriggerType::LastPrice or TriggerType::IndexPrice for Kraken Spot orders.
- Omit trigger_type (None) to use the venue default, which maps to last-price triggering.
- Add venue-conditional logic that substitutes an equivalent trigger type (or drops it) when the venue is Kraken Spot.
Example fix
// before trigger_type: TriggerType::MarkPrice, // after trigger_type: TriggerType::LastPrice,
Defensive patterns
Strategy: validation
Validate before calling
const KRAKEN_SPOT_TRIGGERS: &[TriggerType] = &[TriggerType::LastPrice, TriggerType::Default, TriggerType::IndexPrice];
if let Some(tt) = trigger_type {
if !KRAKEN_SPOT_TRIGGERS.contains(tt) {
return Err(format!("Kraken Spot does not support {tt:?}"));
}
} Try / catch
match submit_result {
Err(e) if e.to_string().contains("Unsupported trigger type") => {
// fall back to TriggerType::LastPrice or omit it
}
r => r?,
} Prevention
- Avoid mark-price triggers in config shared with spot venues.
- Normalize trigger types per venue before order construction.
- Document that Kraken Spot supports only last-price and index-price triggers.
When it happens
Trigger: Submitting a Kraken Spot order whose trigger_type is Some(TriggerType) other than LastPrice, Default, IndexPrice, or None — most typically TriggerType::MarkPrice.
Common situations: Reusing order parameters configured for futures venues (where MarkPrice triggers are standard) against the Kraken Spot adapter; a shared config file carrying mark-price triggers across venues.
Related errors
- Kraken Spot trailing stops do not support activation trigger
- Unsupported time in force: {time_in_force:?}
- limit_price is required for order type {order_type:?}
- Unsupported trigger type for Kraken Spot WS: {other:?} (only
- Unsupported trigger type for Kraken Futures: {other:?} (only
AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08).
Data as JSON: /api/errors/15b98475e0284a21.
Report an issue: GitHub.