v2026.9.24 was tagged on a commit CI had passed whose release build could not compile crates/scim: "queries overflow the depth limit", computing the layout of the writable_domain async fn body.
The crate is ours and the failure is profile-dependent, so CI (dev profile) was green on a commit that could not be released. Adds the recursion_limit rustc itself suggests, proved by a local release build, and makes CI build the release profile on pushes to main.
v2026.9.24 was tagged on a commit CI had passed whose release build could not compile crates/scim: "queries overflow the depth limit", computing the layout of the writable_domain async fn body.
The crate is ours and the failure is profile-dependent, so CI (dev profile) was green on a commit that could not be released. Adds the recursion_limit rustc itself suggests, proved by a local release build, and makes CI build the release profile on pushes to main.
v2026.9.24 was tagged on a commit CI had passed, and its release build could
not compile crates/scim at all:
error: queries overflow the depth limit!
= note: query depth increased by 130 when computing layout of
{async fn body of context::<impl ...>::writable_domain()}
The crate is ours, and the failure is profile-dependent: the release profile
computes those async fn layouts in one go and goes past rustc's default query
depth, while the dev profile never gets that far. CI builds dev, so CI was
green on a commit that could not be released. The tag produced no image and
no release, which is the one merciful part.
Two changes:
- #![recursion_limit = "256"] on the crate, which is what rustc itself
suggests, with a note saying why it only shows up in release. Proved by
building -p scim in release locally: it now finishes.
- CI builds the release profile too, on pushes to main. Pull requests stay
on dev, where the wait is worth less. A few minutes per merge is cheaper
than learning this from a tag, which throws away a multi-architecture
build and leaves a version half-cut.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
v2026.9.24 was tagged on a commit CI had passed whose release build could not compile crates/scim: "queries overflow the depth limit", computing the layout of the writable_domain async fn body.
The crate is ours and the failure is profile-dependent, so CI (dev profile) was green on a commit that could not be released. Adds the recursion_limit rustc itself suggests, proved by a local release build, and makes CI build the release profile on pushes to main.
v2026.9.24 was tagged on a commit CI had passed, and its release build could not compile crates/scim at all: error: queries overflow the depth limit! = note: query depth increased by 130 when computing layout of {async fn body of context::<impl ...>::writable_domain()} The crate is ours, and the failure is profile-dependent: the release profile computes those async fn layouts in one go and goes past rustc's default query depth, while the dev profile never gets that far. CI builds dev, so CI was green on a commit that could not be released. The tag produced no image and no release, which is the one merciful part. Two changes: - #![recursion_limit = "256"] on the crate, which is what rustc itself suggests, with a note saying why it only shows up in release. Proved by building -p scim in release locally: it now finishes. - CI builds the release profile too, on pushes to main. Pull requests stay on dev, where the wait is worth less. A few minutes per merge is cheaper than learning this from a tag, which throws away a multi-architecture build and leaves a version half-cut.