# Dfx 0.23.0: build fail, Caused by: No crate \`xxxxxx\` found

**URL:** <https://forum.dfinity.org/t/dfx-0-23-0-build-fail-caused-by-no-crate-xxxxxx-found/35521>\
**Category:** Command Line Tools\
**Created:** [September 25, 2024, 4:09pm UTC](https://forum.dfinity.org/t/dfx-0-23-0-build-fail-caused-by-no-crate-xxxxxx-found/35521 "2024-09-25T16:09:55Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![zensh](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/zensh/32/15359_2.png) [@zensh](https://forum.dfinity.org/u/zensh)\
**Post date:** [September 25, 2024, 4:09pm UTC](https://forum.dfinity.org/t/dfx-0-23-0-build-fail-caused-by-no-crate-xxxxxx-found/35521/1 "2024-09-25T16:09:55Z")

</div>

```auto
$ dfx build idempotent-proxy-canister
Building canisters...
Checking for vulnerabilities in rust canisters.
    Fetching advisory database from https://github.com/RustSec/advisory-db.git
      Loaded 660 security advisories (from /home/tanguy/.cargo/advisory-db)
    Updating crates.io index
    Scanning Cargo.lock for vulnerabilities (308 crate dependencies)
Audit found no vulnerabilities.
Error: Failed while trying to build all canisters.
Caused by: The build step failed for canister 'bkyz2-fmaaa-aaaaa-qaaaq-cai' (idempotent-proxy-canister)
Caused by: Failed to build Rust canister 'idempotent-proxy-canister'.
Caused by: Failed to create <Type>CanisterInfo for canister 'idempotent-proxy-canister'.
Caused by: No crate `idempotent-proxy-canister` found`

```

> Downgrading my dfx to 0.22.0 made it work. Now I don’t know how to fix it with dfx 0.23.0

Issue from github:

> <https://github.com/ldclabs/idempotent-proxy/issues/2>
>
> Took me a while to find out the reason while my build fails with the error:
> 
> \`…\`\`
> $ dfx build idempotent-proxy-canister
> Building canisters...
> Checking for vulnerabilities in rust canisters.
> Fetching advisory database from https://github.com/RustSec/advisory-db.git
> Loaded 660 security advisories (from /home/tanguy/.cargo/advisory-db)
> Updating crates.io index
> Scanning Cargo.lock for vulnerabilities (308 crate dependencies)
> Audit found no vulnerabilities.
> Error: Failed while trying to build all canisters.
> Caused by: The build step failed for canister 'bkyz2-fmaaa-aaaaa-qaaaq-cai' (idempotent-proxy-canister)
> Caused by: Failed to build Rust canister 'idempotent-proxy-canister'.
> Caused by: Failed to create \<Type\>CanisterInfo for canister 'idempotent-proxy-canister'.
> Caused by: No crate \`idempotent-proxy-canister\` found\`
> \`\`\`
> 
> Downgrading my dfx to 0.22.0 made it work. Now I don't know how to fix it with dfx 0.23.0

---

<div class="post-metadata">

**Author:** ![zensh](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/zensh/32/15359_2.png) [@zensh](https://forum.dfinity.org/u/zensh)\
**Post date:** [September 25, 2024, 4:10pm UTC](https://forum.dfinity.org/t/dfx-0-23-0-build-fail-caused-by-no-crate-xxxxxx-found/35521/2 "2024-09-25T16:10:38Z")

</div>

I can reproduce the issue but haven’t found the cause.

---

<div class="post-metadata">

**Author:** ![wiyota](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/wiyota/32/27664_2.png) [@wiyota](https://forum.dfinity.org/u/wiyota)\
**Post date:** [September 25, 2024, 5:20pm UTC](https://forum.dfinity.org/t/dfx-0-23-0-build-fail-caused-by-no-crate-xxxxxx-found/35521/3 "2024-09-25T17:20:18Z")

</div>

dfx v0.23 cannot handle Rust canisters with hyphens in the crate name.  
Try changing `name` in Cargo.toml and `package` in dfx.json to `idempotent_proxy_canister`.

---

<div class="post-metadata">

**Author:** ![wiyota](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/wiyota/32/27664_2.png) [@wiyota](https://forum.dfinity.org/u/wiyota)\
**Post date:** [September 25, 2024, 5:52pm UTC](https://forum.dfinity.org/t/dfx-0-23-0-build-fail-caused-by-no-crate-xxxxxx-found/35521/4 "2024-09-25T17:52:09Z")

</div>

> <https://github.com/dfinity/sdk/issues/3919>
>
> Although there aren't any breaking changes, when upgrading from 0.22.0 to 0.23.0… my project is no longer able to build:
> 
> \`\`\`
> Error: Failed while trying to build all canisters.
> Caused by: The build step failed for canister 'bkyz2-fmaaa-aaaaa-qaaaq-cai' (zk-rust-vue-demo-backend)
> Caused by: Failed to build Rust canister 'zk-rust-vue-demo-backend'.
> Caused by: Failed to create \<Type\>CanisterInfo for canister 'zk-rust-vue-demo-backend'.
> Caused by: No crate \`zk-rust-vue-demo-backend\` found
> \`\`\`
> 
> Here is my DFX file:
> \`\`\`
> {
> "canisters": {
> "internet-identity": {
> "type": "pull",
> "id": "rdmx6-jaaaa-aaaaa-aaadq-cai"
> },
> "zk-rust-vue-demo-backend": {
> "dependencies": \[
> "internet-identity"
> \],
> "candid": "src/zk-rust-vue-demo-backend/zk-rust-vue-demo-backend.did",
> "package": "zk-rust-vue-demo-backend",
> "type": "rust"
> },
> "zk-rust-vue-demo-frontend": {
> "dependencies": \[
> "zk-rust-vue-demo-backend"
> \],
> "source": \[
> "src/zk-rust-vue-demo-frontend/dist"
> \],
> "type": "assets",
> "workspace": "zk-rust-vue-demo-frontend"
> }
> },
> "defaults": {
> "build": {
> "args": "",
> "packtool": ""
> }
> },
> "output\_env\_file": ".env",
> "version": 1
> }
> \`\`\`
> 
> \### Meta
> 
> \`dfx --version\`:
> \`\`\`
> 0.22.0 upgrading to 0.23.0
> \`\`\`
> 
> \<!--
> If possible, please add log output using the --verbose flag.
> This will make debugging a lot easier.
> \--\>
> \<details\>\<summary\>Further log output\</summary\>
> \<p\>
> 
> \`\`\`
> Building canisters...
> Checking for vulnerabilities in rust canisters.
> Fetching advisory database from \`https://github.com/RustSec/advisory-db.git\`
> Loaded 659 security advisories (from /home/kairus/.cargo/advisory-db)
> Updating crates.io index
> Scanning Cargo.lock for vulnerabilities (79 crate dependencies)
> Audit found no vulnerabilities.
> Building frontend...
> Running cd "/mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo" && CANISTER\_CANDID\_PATH="/mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo/.dfx/local/canisters/zk-rust-vue-demo-frontend/assetstorage.did" CANISTER\_ID="bd3sg-teaaa-aaaaa-qaaba-cai" CANISTER\_ID\_INTERNET\_IDENTITY="rdmx6-jaaaa-aaaaa-aaadq-cai" CANISTER\_ID\_ZK\_RUST\_VUE\_DEMO\_BACKEND="bkyz2-fmaaa-aaaaa-qaaaq-cai" CANISTER\_ID\_ZK\_RUST\_VUE\_DEMO\_FRONTEND="bd3sg-teaaa-aaaaa-qaaba-cai" DFX\_NETWORK="local" DFX\_VERSION="0.23.0" "npm" "run" "build" "--workspace" "zk-rust-vue-demo-frontend"...
> WARN: Generating type declarations for canister zk-rust-vue-demo-frontend:
> /mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo/src/declarations/zk-rust-vue-demo-frontend/zk-rust-vue-demo-frontend.did.d.ts
> /mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo/src/declarations/zk-rust-vue-demo-frontend/zk-rust-vue-demo-frontend.did.js
> /mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo/src/declarations/zk-rust-vue-demo-frontend/zk-rust-vue-demo-frontend.did
> Generating type declarations for canister zk-rust-vue-demo-backend:
> /mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo/src/declarations/zk-rust-vue-demo-backend/zk-rust-vue-demo-backend.did.d.ts
> /mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo/src/declarations/zk-rust-vue-demo-backend/zk-rust-vue-demo-backend.did.js
> /mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo/src/declarations/zk-rust-vue-demo-backend/zk-rust-vue-demo-backend.did
> Generating type declarations for canister internet-identity:
> /mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo/src/declarations/internet-identity/internet-identity.did.d.ts
> /mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo/src/declarations/internet-identity/internet-identity.did.js
> /mnt/c/Users/Kairus/git/IC/zk-rust-vue-demo/src/declarations/internet-identity/internet-identity.did
> 
> Error: Failed while trying to build all canisters.
> Caused by: The build step failed for canister 'bkyz2-fmaaa-aaaaa-qaaaq-cai' (zk-rust-vue-demo-backend)
> Caused by: Failed to build Rust canister 'zk-rust-vue-demo-backend'.
> Caused by: Failed to create \<Type\>CanisterInfo for canister 'zk-rust-vue-demo-backend'.
> Caused by: No crate \`zk-rust-vue-demo-backend\` found
> \`\`\`
> 
> \</p\>
> \</details\>

I found a similar issue here, so I have commented on it, including the part that I think might be the cause.

---

<div class="post-metadata">

**Author:** ![AdamS](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/adams/32/5248_2.png) [@AdamS](https://forum.dfinity.org/u/AdamS)\
**Post date:** [September 25, 2024, 10:52pm UTC](https://forum.dfinity.org/t/dfx-0-23-0-build-fail-caused-by-no-crate-xxxxxx-found/35521/5 "2024-09-25T22:52:50Z")

</div>

dfx can handle hyphens in the package name, but it assumes the wrong crate name. For a stopgap, you do not need to change your Cargo package names, you just need to use dfx’s new field for the crate name.

```json
"package": "idempotent-proxy-canister",
"crate": "idempotent_proxy_canister",

```

This regression will be fixed in the next release.

---

<div class="post-metadata">

**Author:** ![AdamS](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/adams/32/5248_2.png) [@AdamS](https://forum.dfinity.org/u/AdamS)\
**Post date:** [October 7, 2024, 1:10pm UTC](https://forum.dfinity.org/t/dfx-0-23-0-build-fail-caused-by-no-crate-xxxxxx-found/35521/6 "2024-10-07T13:10:35Z")

</div>

As of 0.24 hyphens are correctly handled.
