Open
Description
I tried the following:
- Run workflow in GitHub Actions to build dfx project with custom canisters (frontend + backend)
- Using dfx build command sequentially for each canister
I expected to see: Build succeeds with all canisters compiled
Instead: Build fails due to missing .did files despite them being defined in dfx.json with remote URLs:
- icrc1_ledger_canister.did
- ledger.did
- evm_rpc.did
The error occurs during dfx generate
prebuild step as it looks for .did files in local directory path even though they are defined as remote URLs in dfx.json.
Current workaround is to use curl
to download the .did files before executing dfx build
or dfx generate
. This affects the developer experience.
Meta
dfx --version
: 0.24.0
dfx 0.24.0
Further log output
Run find . -name "ledger.did"
./node_modules/@dfinity/ledger-icp/dist/candid/ledger.did
Building canisters...
WARN: .did file for canister 'evm_rpc' does not exist.
WARN: .did file for canister 'ledger' does not exist.
WARN: .did file for canister 'icrc1_ledger_canister' does not exist.
Building canisters...
WARN: .did file for canister 'evm_rpc' does not exist.
WARN: .did file for canister 'icrc1_ledger_canister' does not exist.
Building canisters...
WARN: .did file for canister 'icrc1_ledger_canister' does not exist.
WARN: .did file for canister 'evm_rpc' does not exist.
Building frontend...
Error: Failed while trying to build all canisters.
Caused by: The post-build step failed for canister 'b77ix-eeaaa-aaaaa-qaada-cai' (landing)
Caused by: Failed to build frontend for network 'local'.
Caused by: The command 'cd "/home/runner/work/multisignature/multisignature" && CANISTER_CANDID_PATH="/home/runner/work/multisignature/multisignature/.dfx/local/canisters/landing/assetstorage.did" CANISTER_ID="b77ix-eeaaa-aaaaa-qaada-cai" CANISTER_ID_ACCOUNT="bkyz2-fmaaa-aaaaa-qaaaq-cai" CANISTER_ID_CENTRAL="bd3sg-teaaa-aaaaa-qaaba-cai" CANISTER_ID_DASH="be2us-64aaa-aaaaa-qaabq-cai" CANISTER_ID_EVM_RPC="7hfb6-caaaa-aaaar-qadga-cai" CANISTER_ID_ICRC1_LEDGER_CANISTER="br5f7-7uaaa-aaaaa-qaaca-cai" CANISTER_ID_INTERNET_IDENTITY="bw4dl-smaaa-aaaaa-qaacq-cai" CANISTER_ID_LANDING="b77ix-eeaaa-aaaaa-qaada-cai" CANISTER_ID_LEDGER="by6od-j4aaa-aaaaa-qaadq-cai" DFX_NETWORK="local" DFX_VERSION="0.[24](https://github.com/keygate-vault/multisignature/actions/runs/12090915916/job/33718593999#step:10:25).0" "npm" "run" "build"' failed with exit status 'exit status: 255'.
Stdout:
> prebuild
> npm run prebuild --workspaces --if-present
> dash@0.0.1 prebuild
> dfx generate
> landing@0.0.0 prebuild
> dfx generate
Stderr:
Generating type declarations for canister ledger:
/home/runner/work/multisignature/multisignature/src/declarations/ledger/ledger.did.d.ts
/home/runner/work/multisignature/multisignature/src/declarations/ledger/ledger.did.js
/home/runner/work/multisignature/multisignature/src/declarations/ledger/ledger.did
Generating type declarations for canister landing:
/home/runner/work/multisignature/multisignature/src/declarations/landing/landing.did.d.ts
/home/runner/work/multisignature/multisignature/src/declarations/landing/landing.did.js
/home/runner/work/multisignature/multisignature/src/declarations/landing/landing.did
Generating type declarations for canister internet_identity:
/home/runner/work/multisignature/multisignature/src/declarations/internet_identity/internet_identity.did.d.ts
/home/runner/work/multisignature/multisignature/src/declarations/internet_identity/internet_identity.did.js
/home/runner/work/multisignature/multisignature/src/declarations/internet_identity/internet_identity.did
Generating type declarations for canister icrc1_ledger_canister:
Error: Failed while trying to generate type declarations for 'icrc1_ledger_canister'.
Caused by: Candid file: /home/runner/work/multisignature/multisignature/.dfx/local/canisters/icrc1_ledger_canister/icrc1_ledger_canister.did doesn't exist.
npm error Lifecycle script `prebuild` failed with error:
npm error code [25](https://github.com/keygate-vault/multisignature/actions/runs/12090915916/job/33718593999#step:10:26)5
npm error path /home/runner/work/multisignature/multisignature/src/dash
npm error workspace dash@0.0.1
npm error location /home/runner/work/multisignature/multisignature/src/dash
npm error command failed
npm error command sh -c dfx generate
Generating type declarations for canister ledger:
/home/runner/work/multisignature/multisignature/src/declarations/ledger/ledger.did.d.ts
/home/runner/work/multisignature/multisignature/src/declarations/ledger/ledger.did.js
/home/runner/work/multisignature/multisignature/src/declarations/ledger/ledger.did
Generating type declarations for canister landing:
/home/runner/work/multisignature/multisignature/src/declarations/landing/landing.did.d.ts
/home/runner/work/multisignature/multisignature/src/declarations/landing/landing.did.js
/home/runner/work/multisignature/multisignature/src/declarations/landing/landing.did
Generating type declarations for canister internet_identity:
/home/runner/work/multisignature/multisignature/src/declarations/internet_identity/internet_identity.did.d.ts
/home/runner/work/multisignature/multisignature/src/declarations/internet_identity/internet_identity.did.js
/home/runner/work/multisignature/multisignature/src/declarations/internet_identity/internet_identity.did
Generating type declarations for canister icrc1_ledger_canister:
Error: Failed while trying to generate type declarations for 'icrc1_ledger_canister'.
Caused by: Candid file: /home/runner/work/multisignature/multisignature/.dfx/local/canisters/icrc1_ledger_canister/icrc1_ledger_canister.did doesn't exist.
npm error Lifecycle script `prebuild` failed with error:
npm error code 255
npm error path /home/runner/work/multisignature/multisignature/src/landing
npm error workspace landing@0.0.0
npm error location /home/runner/work/multisignature/multisignature/src/landing
npm error command failed
npm error command sh -c dfx generate
Error: Process completed with exit code 2[55](https://github.com/keygate-vault/multisignature/actions/runs/12090915916/job/33718593999#step:10:56).
See https://github.com/keygate-vault/multisignature/actions/runs/12090915916/workflow.