error-stack
A context-aware error-handling library that supports arbitrary attached user data
0.8.0
4.3M downloads/mo
#4850 most downloaded on crates.io
hashintel/hash
What this package is like to depend on
Last release 1 months ago
03 Jul 2026
Release timing varies
gaps range from 9 days to 1.1 years
Nearly every release is documented
notes for 15 of 16 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
16 releases · first in 2022
4 releases in the last 12 months
see the full history below
Release timeline
16 releases · Jun 2022 to Jul 2026Releases
latest 16-
0.8.003 Jul 2026Release notes
Open source →What changed
Breaking Changes
- Fix a soundness hole in
Report::frames_mut: the returned iterator handed out&mut Frames with independent lifetimes, so a frame and one of its sources (viaFrame::sources_mut) could be borrowed mutably at the same time — undefined behavior triggerable from safe code, up to segfaults.frames_mutnow takes a visitor closure (FnMut(&mut Frame) -> ControlFlow<()>) instead of returning an iterator, and theFramesMuttype has been removed.Report::downcast_mutis unaffected. (#8946)
Release notes
Open source →Breaking Changes
- Fix a soundness hole in
Report::frames_mut: the returned iterator handed out&mut Frames with independent lifetimes, so a frame and one of its sources (viaFrame::sources_mut) could be borrowed mutably at the same time — undefined behavior triggerable from safe code, up to segfaults.frames_mutnow takes a visitor closure (FnMut(&mut Frame) -> ControlFlow<()>) instead of returning an iterator, and theFramesMuttype has been removed.Report::downcast_mutis unaffected. (#8946)
- Fix a soundness hole in
-
0.7.127 May 2026Release notes
Open source →What changed
Fixes
- Gate
sinkimports behindcfg(nightly)soerror-stackcompiles on stable Rust with theunstablefeature enabled. (#8768)
Full Changelog: https://github.com/hashintel/hash/compare/[email protected]@0.7.1
Release notes
Open source →Fixes
- Gate
sinkimports behindcfg(nightly)soerror-stackcompiles on stable Rust with theunstablefeature enabled. (#8768)
- Gate
-
0.7.026 Mar 2026Release notes
Open source → -
0.6.030 Aug 2025Release notes
Open source →Features
- Report has been split into
Report<C>andReport<[C]>to distinguish between a group of related errors and a single error. These errors can still be nested. (#5047) - Introduce a new
unstableflag, which is used to enable unstable features, these features are not covered by semver and may be modified or removed at any time. (#5181) - Reintroduce a new
IntoReporttrait, which is used to determine when a type can be converted to aReport. This allows the usage of errors more idiomatically in traits, such astype Error: IntoReport. (#6738)
Breaking Changes
- Rename
attach[_lazy]toattach_opaque[_with]andattach_printable[_lazy]toattach[_with]. (#7753) - Set the MSRV to 1.83 (#5333)
Extendis no longer implemented byReport<C>, instead it is implemented onReport<[C]>, either useFromorReport::expandto convert betweenReport<C>intoReport<[C]>. (#5047)extend_onehas been renamed topushand is only implemented onReport<[C]>. (#5047)bail!(report,)has been removed, one must now usebail!(report). This is in preparation for the unstablebail!macro that allows to constructReport<[C]>. (#5047)
Deprecations
- Report has been split into
-
0.5.012 Jul 2024Release notes
Open source → -
0.4.104 Sep 2023 -
0.4.023 Aug 2023Release notes
Open source →Breaking Changes
- Add
ResultExt::Contextas associated type (#2883)
Features
- Implement
ResultExtforResulteven if theErr-variant is notReport<C>but onlyC: Context(#2883)
Deprecations
IntoReport: UseReportExtorFromviaResult::map_err(Report::from)instead (#2883)
- Add
-
0.3.108 Feb 2023 -
0.3.001 Feb 2023Release notes
Open source →Breaking Changes
Features
- Add initial serializing support using
serde(#1290) - Support
Debughooks onno-stdplatforms via thehooksfeature (#1556) - Support converting
ReportintoErrorviaReport::as_errorandReport::into_error(#1749) - Support converting
ReportintoBox<dyn Error>via theFromtrait (#1749) - Programmatic selection of color mode and charset used for
Debugoutput (#1800)
- Add initial serializing support using
-
0.2.404 Nov 2022 -
0.2.312 Oct 2022 -
0.2.207 Oct 2022 -
0.2.103 Oct 2022Release notes
Open source →Patch Changes
-
#8727
834cbeeThanks @alex-e-leon! - Add NumberInput component -
Updated dependencies [
c0c9498]:- @hashintel/[email protected]
-
-
0.2.003 Oct 2022Release notes
Open source →Breaking Changes
- Set the MSRV to 1.63 (#944)
- Use
ProviderAPI fromcore::any(#697) - Remove the unused features
hooks,futures, andfutures-core(#695, #1138)
Features
- Support backtraces on non-nightly channels starting with 1.65.0-beta (#1098)
- Add support for
core::error::Erroron nightly (#1038) - Add support for
Error::provide()(#904) - New output for Debug (#794)
- New hook interface for Debug (#794)
- Add support for related errors and multiple error sources (#747)
- Add compatibility for
anyhowandeyreto convert their types intoReport(#763) - Implement
TerminationforReport(#671) Report::set_debug_hookandReport::set_display_hookno longer return an error (#794)
Deprecations
IntoReport::report: UseIntoReport::into_reportinstead (#698)Report::backtrace: UseReport::downcast_ref::<Backtrace>(non-nightly),Report::request_ref::<Backtrace>(nightly) instead (#747)Report::span_trace: UseReport::downcast_ref::<SpanTrace>(non-nightly),Report::request_ref::<SpanTrace>(nightly) instead (#747)Frame::source: UseFrame::sourcesinstead (#747)Frame::source_mut: UseFrame::sources_mutinstead (#747)Report::set_debug_hook: UseReport::install_debug_hookinstead (#794)Report::set_display_hook(#794)
Internal improvements
- Greatly reduce the amount of
unsafecode (#774)
-
0.1.110 Jun 2022Nothing published for this version
-
0.1.010 Jun 2022