Dfx deploy fails because of did compile

I’m facing the same issue when I dfx deploy than when I dfx generate. Looking forward to the answer to the latest in the other thread but here my question is why does dfx compiles the did files when I deploy? If there is a good reason, is there a param to skip it?

❯ dfx deploy satellite
Deploying: satellite
All canisters have already been created.
Building canisters…
Checking for vulnerabilities in rust canisters.
Fetching advisory database from https://github.com/RustSec/advisory-db.git
Loaded 595 security advisories (from /Users/daviddalbusco/.cargo/advisory-db)
Updating crates.io index

warning: couldn’t update crates.io index: registry: an unknown git error occurred; code=NotFound (-3)
Scanning Cargo.lock for vulnerabilities (164 crate dependencies)
Crate: serde_cbor
Version: 0.11.2
Warning: unmaintained
Title: serde_cbor is unmaintained
Date: 2021-08-15
ID: RUSTSEC-2021-0127
URL: RUSTSEC-2021-0127: serde_cbor: serde_cbor is unmaintained › RustSec Advisory Database
Dependency tree:
serde_cbor 0.11.2
├── junobuild-satellite 0.1.0
│ └── satellite 0.0.14
└── console 0.0.8

warning: 1 allowed warning found
Audit found no vulnerabilities.
Executing: cargo build --target wasm32-unknown-unknown --release -p satellite --locked
Finished release [optimized] target(s) in 0.20s
error: parser error
┌─ /Users/daviddalbusco/projects/juno/juno/src/satellite/satellite.did:1:8

1 │ import service “satellite_extension.did”;
│ ^^^^^^^ Unexpected token

= Expects “text”

Error: Failed while trying to deploy canisters.
Caused by: Failed while trying to deploy canisters.
Failed to build all canisters.
Failed while trying to build all canisters.
The post-build step failed for canister ‘be2us-64aaa-aaaaa-qaabq-cai’ (satellite) with an embedded error: Candid file check failed for /Users/daviddalbusco/projects/juno/juno/src/satellite/satellite.did.: Candid parser error: Unrecognized token Service found at 7:14
Expected one of “text”: Unrecognized token Service found at 7:14
Expected one of “text”

Actually, I don’t care. Nvm this question.

1 Like

why does dfx compiles the did files when I deploy? If there is a good reason, is there a param to skip it?

Not always, but if the local did file contains init args or import, dfx have to compile the did file to perform some rewriting before storing the did file into canister metadata.

1 Like