typst/typst · error
length must be negative or zero
Error message
length must be negative or zero
What it means
Raised by Limit::checked_min for Length: a limit expecting a non-positive value (e.g. par spacing collapse bounds) received a length with a positive abs or em component.
Source
Thrown at crates/typst-library/src/model/par.rs:594
}
}
impl<T> Fold for Limits<T> {
fn fold(self, _: Self) -> Self {
self
}
}
/// Validation for limit components.
trait Limit: Sized {
fn checked_min(self) -> StrResult<Self>;
fn checked_max(self) -> StrResult<Self>;
}
impl Limit for Length {
fn checked_min(self) -> StrResult<Self> {
if self.abs > Abs::zero() || self.em > Em::zero() {
bail!("length must be negative or zero");
}
Ok(self)
}
fn checked_max(self) -> StrResult<Self> {
if self.abs < Abs::zero() || self.em < Em::zero() {
bail!("length must be positive or zero");
}
Ok(self)
}
}
impl Limit for Rel<Length> {
fn checked_min(self) -> StrResult<Self> {
if self.rel <= Ratio::zero() {
bail!("ratio must be positive");
}
self.abs.checked_min()?;View on GitHub (pinned to 35417aa769)
Solutions
- Use zero or negative values for this setting
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/typst-library/src/model/par.rs:594 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of typst/typst@35417aa769 (2026-08-17).
Data as JSON: /api/errors/da43d8bfff3757a7.
Report an issue: GitHub.