[Canonical page](<https://docs.dhtmlx.com/planning-engine/rust/api/core/errors/overview/>)
[Full documentation index](<https://docs.dhtmlx.com/planning-engine/llms.txt>)


# errors

The failure types. Every fallible call in the crate returns `Result<_, Error>`, and [`Error`](<https://docs.dhtmlx.com/planning-engine/rust/api/core/errors/error.md>) wraps one of two causes. [`InputError`](<https://docs.dhtmlx.com/planning-engine/rust/api/core/errors/input-error.md>) means the data or options you passed are invalid, with its kind in [`InputErrorKind`](<https://docs.dhtmlx.com/planning-engine/rust/api/core/errors/input-error-kind.md>). [`ProjectError`](<https://docs.dhtmlx.com/planning-engine/rust/api/core/errors/project-error.md>) means the call doesn't fit the project's current state. Conflicts, cycles and rejected `apply` operations aren't errors: they come back as data inside `Ok`. All four types are re-exported at the crate root, so you import `plen_core::Error`, not an internal module path.

For recovery patterns, see [Error handling](<https://docs.dhtmlx.com/planning-engine/rust/error-handling.md>).

:::category-index
:::