cube-js/cube · error · minijinja::Error
insecure call
Error message
insecure call
What it means
A security sentinel guard: a Python/Jinja sequence object exposed to templates was used in call position (e.g. {{ mylist(...) }}). Sequence objects are only indexable/iterable from Jinja; making them callable could execute arbitrary underlying code, so invocation is rejected with this fixed message.
Source
Thrown at packages/cubejs-backend-native/src/template/mj_value/value.rs:40
}
impl SeqObject for JinjaSequenceObject {
fn get_item(&self, idx: usize) -> Option<Value> {
self.inner.get(idx).map(|v| to_minijinja_value(v.clone()))
}
fn item_count(&self) -> usize {
self.inner.len()
}
}
impl Object for JinjaSequenceObject {
fn kind(&self) -> ObjectKind<'_> {
ObjectKind::Seq(self)
}
fn call(&self, _state: &mj::State, _args: &[Value]) -> Result<Value, mj::Error> {
Err(mj::Error::new(
minijinja::ErrorKind::InvalidOperation,
"insecure call",
))
}
fn call_method(
&self,
_state: &mj::State,
_name: &str,
_args: &[Value],
) -> Result<Value, mj::Error> {
Err(mj::Error::new(
minijinja::ErrorKind::InvalidOperation,
"insecure method call",
))
}
}
View on GitHub (pinned to 7d981676b3)
Solutions
- Index or iterate the sequence instead of calling it, e.g. {{ mylist[0] }} or {% for x in mylist %}
- Expose a proper function object if calling is genuinely needed
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at packages/cubejs-backend-native/src/template/mj_value/value.rs:40 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of cube-js/cube@7d981676b3 (2026-09-02).
Data as JSON: /api/errors/102d7b6612a1ef28.
Report an issue: GitHub.