{"record":{"id":"da43d8bfff3757a7","repo":"typst/typst","slug":"length-must-be-negative-or-zero","errorCode":null,"errorMessage":"length must be negative or zero","messagePattern":"length must be negative or zero","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/typst-library/src/model/par.rs","lineNumber":594,"sourceCode":"    }\n}\n\nimpl<T> Fold for Limits<T> {\n    fn fold(self, _: Self) -> Self {\n        self\n    }\n}\n\n/// Validation for limit components.\ntrait Limit: Sized {\n    fn checked_min(self) -> StrResult<Self>;\n    fn checked_max(self) -> StrResult<Self>;\n}\n\nimpl Limit for Length {\n    fn checked_min(self) -> StrResult<Self> {\n        if self.abs > Abs::zero() || self.em > Em::zero() {\n            bail!(\"length must be negative or zero\");\n        }\n        Ok(self)\n    }\n\n    fn checked_max(self) -> StrResult<Self> {\n        if self.abs < Abs::zero() || self.em < Em::zero() {\n            bail!(\"length must be positive or zero\");\n        }\n        Ok(self)\n    }\n}\n\nimpl Limit for Rel<Length> {\n    fn checked_min(self) -> StrResult<Self> {\n        if self.rel <= Ratio::zero() {\n            bail!(\"ratio must be positive\");\n        }\n        self.abs.checked_min()?;","sourceCodeStart":576,"sourceCodeEnd":612,"githubUrl":"https://github.com/typst/typst/blob/35417aa769ab9d699a60384f91082b09bc6ba421/crates/typst-library/src/model/par.rs#L576-L612","documentation":"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.","triggerScenarios":"Thrown at crates/typst-library/src/model/par.rs:594 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use zero or negative values for this setting"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"35417aa769ab9d699a60384f91082b09bc6ba421","analyzedAt":"2026-08-17T21:03:48.984Z","contentChangedAt":"2026-08-17T21:03:48.984Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}