.did file does not exist. Unable to deploy on local but deploy to --playground is Ok

For the last days, after trying different approach, I’m running into this issue : import error [M0009], file “/Users/blabla/dev/dfinity/app/.dfx/local/canisters/idl/be2us-64aaa-aaaaa-qaabq-cai.did” does not exist

Here is my dfx.json file
{
“canisters”: {
“contact”: {
“main”: “src/app_server/Models/main.mo”,
“type”: “motoko”

},
"app_server": {
    "main": "src/app_server/main.mo",
    "type": "motoko"
    
},
"app_frontend": {
  "frontend": {
    "entrypoint": "src/app_frontend/src/index.html"
  },
  "source": [
    "src/app_frontend/assets",
    "dist/app_frontend/"
  ],
  "type": "assets"
}

},
“defaults”: {
“build”: {
“args”: “”,
“packtool”: “mops sources”
}
},
“output_env_file”: “.env”,
“version”: 1
}

My contact actor

import Debug “mo:base/Debug”;
import Array “mo:base/Array”;

actor {

    type ContactType = {
    name : Text;
    email : Text;
    imgUrl : Text;
    title : Text;
    state : Text;
};


stable var contactStorage : [ContactType] = [];

public func listContact(page : Nat8) : async [ContactType] {
    Debug.print("listContact in contact Models");
    contactStorage;
};

I have deleted the .dfx folder without success, tried to change the dependency order, move the contact folder elsewhere. My contact canister contains a simple actor that I have minimize for debugging and still no success.

Last night, I tried dfx deploy --playground and boom, it deployed without error !!!
Can’t really see what is going on here, my next step would be to create a new project and copy all files in the new project.

Any thought on what is the problem ? Thank you

1 Like

Sounds weird to me. This file should (in the worst case) be generated by dfx build (which is a part of dfx deploy). Can you try to deploy with -vv (verbose mode) and report back with the log output?

1 Like

Hi Severin, here is the trace with --vv

dfx deploy -vv
Trace mode enabled. Lots of logs coming up.
Checking if identity 'micheladey' exists.
Found keyring identity suffix - PEM file is stored in keyring.
Deploying all canisters.
All canisters have already been created.
Building canisters...
No canister of type 'rust' found. Not trying to run 'cargo audit'.
Building canister 'contact'.
Running "/Users/miadey/.cache/dfinity/versions/0.15.1/moc" "/Users/miadey/dev/dfinity/app/src/app_server/Models/contact.mo" "-o" "/Users/miadey/dev/dfinity/app/.dfx/local/canisters/contact/contact.wasm" "-c" "--debug" "--idl" "--stable-types" "--public-metadata" "candid:service" "--public-metadata" "candid:args" "--actor-idl" "/Users/miadey/dev/dfinity/app/.dfx/local/canisters/idl/" "--actor-alias" "app_frontend" "bkyz2-fmaaa-aaaaa-qaaaq-cai" "--actor-alias" "app_server" "bd3sg-teaaa-aaaaa-qaaba-cai" "--actor-alias" "contact" "be2us-64aaa-aaaaa-qaabq-cai" "--package" "base" ".mops/base@0.10.1/src" "--package" "server" ".mops/server@0.2.0/src" "--package" "certified-cache" ".mops/certified-cache@0.2.0/src" "--package" "ic-certification" ".mops/ic-certification@0.1.0/src" "--package" "sha256" ".mops/_github/sha256@9e2468f51ef060ae04fde8d573183191bda30189/src" "--package" "cbor" ".mops/_github/cbor@v1.0.1/src" "--package" "xtended-numbers" ".mops/_github/xtended-numbers@v1.0.2/src" "--package" "sha224" ".mops/_github/sha224@82e0aa1a77a8c0a2f98332b59ffc242d820e62cb/src" "--package" "motoko-sha" ".mops/_github/motoko-sha@master/src" "--package" "StableHashMap" ".mops/_github/StableHashMap@master/src" "--package" "json" ".mops/_github/json@v0.2.1/src" "--package" "base-0.7.3" ".mops/_github/base-0.7.3@aafcdee0c8328087aeed506e64aa2ff4ed329b47/src" "--package" "parser-combinators" ".mops/_github/parser-combinators@v0.1.2/src" "--package" "array" ".mops/_github/array@v0.2.1/src" "--package" "encoding" ".mops/_github/encoding@v0.3.2/src" "--package" "serde" ".mops/serde@0.2.0/src" "--package" "itertools" ".mops/itertools@0.1.1/src" "--package" "candid" ".mops/candid@0.1.2/src" "--package" "test" ".mops/test@1.0.1/src" "--package" "assets" ".mops/assets@0.2.0/src" "--package" "http-parser.mo" ".mops/_github/http-parser.mo@master/src" "--package" "json.mo" ".mops/json.mo@0.1.1/src"...
WARN: /Users/miadey/dev/dfinity/app/src/app_server/Models/contact.mo:24.31-24.43: warning [M0154], field append is deprecated:
`Array.append` copies its arguments and has linear complexity;
/Users/miadey/dev/dfinity/app/src/app_server/Models/contact.mo:24.31-24.43: warning [M0154], field append is deprecated:
`Array.append` copies its arguments and has linear complexity;

Post processing candid file
Shrinking WASM
Attaching metadata
Building canister 'app_frontend'.
Post processing candid file
Attaching metadata
Building frontend...
Running cd "/Users/miadey/dev/dfinity/app" && APP_FRONTEND_CANISTER_ID="bkyz2-fmaaa-aaaaa-qaaaq-cai" APP_SERVER_CANISTER_ID="bd3sg-teaaa-aaaaa-qaaba-cai" CANISTER_CANDID_PATH="/Users/miadey/dev/dfinity/app/.dfx/local/canisters/app_frontend/assetstorage.did" CANISTER_ID="bkyz2-fmaaa-aaaaa-qaaaq-cai" CANISTER_ID_APP_FRONTEND="bkyz2-fmaaa-aaaaa-qaaaq-cai" CANISTER_ID_APP_SERVER="bd3sg-teaaa-aaaaa-qaaba-cai" CANISTER_ID_CONTACT="be2us-64aaa-aaaaa-qaabq-cai" CANISTER_ID_app_frontend="bkyz2-fmaaa-aaaaa-qaaaq-cai" CANISTER_ID_app_server="bd3sg-teaaa-aaaaa-qaaba-cai" CANISTER_ID_contact="be2us-64aaa-aaaaa-qaabq-cai" CONTACT_CANISTER_ID="be2us-64aaa-aaaaa-qaabq-cai" DFX_NETWORK="local" DFX_VERSION="0.15.1" "npm" "run" "build"...
WARN: Building canisters before generate for Motoko
WARN: /Users/miadey/dev/dfinity/app/src/app_server/Models/contact.mo:24.31-24.43: warning [M0154], field append is deprecated:
`Array.append` copies its arguments and has linear complexity;
/Users/miadey/dev/dfinity/app/src/app_server/Models/contact.mo:24.31-24.43: warning [M0154], field append is deprecated:
`Array.append` copies its arguments and has linear complexity;

WARN: .mops/assets@0.2.0/src/Batch.mo:38.61-38.69: warning [M0154], field hash is deprecated:
For large `Int` values consider using a bespoke hash function that considers all of the argument's bits.
.mops/assets@0.2.0/src/Batch.mo:58.47-58.55: warning [M0154], field hash is deprecated:
For large `Int` values consider using a bespoke hash function that considers all of the argument's bits.
.mops/assets@0.2.0/src/Chunk.mo:22.60-22.68: warning [M0154], field hash is deprecated:
For large `Int` values consider using a bespoke hash function that considers all of the argument's bits.
.mops/assets@0.2.0/src/Chunk.mo:55.46-55.54: warning [M0154], field hash is deprecated:
For large `Int` values consider using a bespoke hash function that considers all of the argument's bits.
.mops/assets@0.2.0/src/lib.mo:58.23-58.35: warning [M0154], field append is deprecated:
`Array.append` copies its arguments and has linear complexity;
.mops/assets@0.2.0/src/lib.mo:482.23-482.38: warning [M0154], field toArray is deprecated:
Use static library function instead.
.mops/assets@0.2.0/src/lib.mo:507.7-507.33: warning [M0154], field toArray is deprecated:
Use static library function instead.
.mops/base@0.10.1/src/Principal.mo:80.20-80.32: warning [M0154], field append is deprecated:
`Array.append` copies its arguments and has linear complexity;
.mops/server@0.2.0/src/http-parser/MultiValueMap.mo:59.22-59.36: warning [M0154], field toArray is deprecated:
Use static library function instead.
.mops/server@0.2.0/src/http-parser/MultiValueMap.mo:88.35-88.49: warning [M0154], field toArray is deprecated:
Use static library function instead.
.mops/server@0.2.0/src/lib.mo:376.23-376.35: warning [M0154], field append is deprecated:
`Array.append` copies its arguments and has linear complexity;
/Users/miadey/dev/dfinity/app/src/app_server/Lib/customTypes.mo:0.1: warning [M0142], deprecated syntax: an imported library should be a module or named actor class

Generating type declarations for canister contact:
  src/declarations/contact/contact.did.d.ts
  src/declarations/contact/contact.did.js
  src/declarations/contact/contact.did
Generating type declarations for canister app_server:
  src/declarations/app_server/app_server.did.d.ts
  src/declarations/app_server/app_server.did.js
  src/declarations/app_server/app_server.did
Generating type declarations for canister app_frontend:
  src/declarations/app_frontend/app_frontend.did.d.ts
  src/declarations/app_frontend/app_frontend.did.js
  src/declarations/app_frontend/app_frontend.did

Building canister 'app_server'.
Running "/Users/miadey/.cache/dfinity/versions/0.15.1/moc" "/Users/miadey/dev/dfinity/app/src/app_server/route.mo" "-o" "/Users/miadey/dev/dfinity/app/.dfx/local/canisters/app_server/app_server.wasm" "-c" "--debug" "--idl" "--stable-types" "--public-metadata" "candid:service" "--public-metadata" "candid:args" "--actor-idl" "/Users/miadey/dev/dfinity/app/.dfx/local/canisters/idl/" "--actor-alias" "app_frontend" "bkyz2-fmaaa-aaaaa-qaaaq-cai" "--actor-alias" "app_server" "bd3sg-teaaa-aaaaa-qaaba-cai" "--actor-alias" "contact" "be2us-64aaa-aaaaa-qaabq-cai" "--package" "base" ".mops/base@0.10.1/src" "--package" "server" ".mops/server@0.2.0/src" "--package" "certified-cache" ".mops/certified-cache@0.2.0/src" "--package" "ic-certification" ".mops/ic-certification@0.1.0/src" "--package" "sha256" ".mops/_github/sha256@9e2468f51ef060ae04fde8d573183191bda30189/src" "--package" "cbor" ".mops/_github/cbor@v1.0.1/src" "--package" "xtended-numbers" ".mops/_github/xtended-numbers@v1.0.2/src" "--package" "sha224" ".mops/_github/sha224@82e0aa1a77a8c0a2f98332b59ffc242d820e62cb/src" "--package" "motoko-sha" ".mops/_github/motoko-sha@master/src" "--package" "StableHashMap" ".mops/_github/StableHashMap@master/src" "--package" "json" ".mops/_github/json@v0.2.1/src" "--package" "base-0.7.3" ".mops/_github/base-0.7.3@aafcdee0c8328087aeed506e64aa2ff4ed329b47/src" "--package" "parser-combinators" ".mops/_github/parser-combinators@v0.1.2/src" "--package" "array" ".mops/_github/array@v0.2.1/src" "--package" "encoding" ".mops/_github/encoding@v0.3.2/src" "--package" "serde" ".mops/serde@0.2.0/src" "--package" "itertools" ".mops/itertools@0.1.1/src" "--package" "candid" ".mops/candid@0.1.2/src" "--package" "test" ".mops/test@1.0.1/src" "--package" "assets" ".mops/assets@0.2.0/src" "--package" "http-parser.mo" ".mops/_github/http-parser.mo@master/src" "--package" "json.mo" ".mops/json.mo@0.1.1/src"...
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 build step failed for canister 'bd3sg-teaaa-aaaaa-qaaba-cai' (app_server) with an embedded error: Failed to build Motoko canister 'app_server'.: Failed to compile Motoko.: Failed to run 'moc'.: The command '"/Users/miadey/.cache/dfinity/versions/0.15.1/moc" "/Users/miadey/dev/dfinity/app/src/app_server/route.mo" "-o" "/Users/miadey/dev/dfinity/app/.dfx/local/canisters/app_server/app_server.wasm" "-c" "--debug" "--idl" "--stable-types" "--public-metadata" "candid:service" "--public-metadata" "candid:args" "--actor-idl" "/Users/miadey/dev/dfinity/app/.dfx/local/canisters/idl/" "--actor-alias" "app_frontend" "bkyz2-fmaaa-aaaaa-qaaaq-cai" "--actor-alias" "app_server" "bd3sg-teaaa-aaaaa-qaaba-cai" "--actor-alias" "contact" "be2us-64aaa-aaaaa-qaabq-cai" "--package" "base" ".mops/base@0.10.1/src" "--package" "server" ".mops/server@0.2.0/src" "--package" "certified-cache" ".mops/certified-cache@0.2.0/src" "--package" "ic-certification" ".mops/ic-certification@0.1.0/src" "--package" "sha256" ".mops/_github/sha256@9e2468f51ef060ae04fde8d573183191bda30189/src" "--package" "cbor" ".mops/_github/cbor@v1.0.1/src" "--package" "xtended-numbers" ".mops/_github/xtended-numbers@v1.0.2/src" "--package" "sha224" ".mops/_github/sha224@82e0aa1a77a8c0a2f98332b59ffc242d820e62cb/src" "--package" "motoko-sha" ".mops/_github/motoko-sha@master/src" "--package" "StableHashMap" ".mops/_github/StableHashMap@master/src" "--package" "json" ".mops/_github/json@v0.2.1/src" "--package" "base-0.7.3" ".mops/_github/base-0.7.3@aafcdee0c8328087aeed506e64aa2ff4ed329b47/src" "--package" "parser-combinators" ".mops/_github/parser-combinators@v0.1.2/src" "--package" "array" ".mops/_github/array@v0.2.1/src" "--package" "encoding" ".mops/_github/encoding@v0.3.2/src" "--package" "serde" ".mops/serde@0.2.0/src" "--package" "itertools" ".mops/itertools@0.1.1/src" "--package" "candid" ".mops/candid@0.1.2/src" "--package" "test" ".mops/test@1.0.1/src" "--package" "assets" ".mops/assets@0.2.0/src" "--package" "http-parser.mo" ".mops/_github/http-parser.mo@master/src" "--package" "json.mo" ".mops/json.mo@0.1.1/src"' failed with exit status 'exit status: 1'.
Stdout:

Stderr:
.mops/assets@0.2.0/src/Batch.mo:38.61-38.69: warning [M0154], field hash is deprecated:
For large `Int` values consider using a bespoke hash function that considers all of the argument's bits.
.mops/assets@0.2.0/src/Batch.mo:58.47-58.55: warning [M0154], field hash is deprecated:
For large `Int` values consider using a bespoke hash function that considers all of the argument's bits.
.mops/assets@0.2.0/src/Chunk.mo:22.60-22.68: warning [M0154], field hash is deprecated:
For large `Int` values consider using a bespoke hash function that considers all of the argument's bits.
.mops/assets@0.2.0/src/Chunk.mo:55.46-55.54: warning [M0154], field hash is deprecated:
For large `Int` values consider using a bespoke hash function that considers all of the argument's bits.
.mops/assets@0.2.0/src/lib.mo:58.23-58.35: warning [M0154], field append is deprecated:
`Array.append` copies its arguments and has linear complexity;
.mops/assets@0.2.0/src/lib.mo:482.23-482.38: warning [M0154], field toArray is deprecated:
Use static library function instead.
.mops/assets@0.2.0/src/lib.mo:507.7-507.33: warning [M0154], field toArray is deprecated:
Use static library function instead.
.mops/base@0.10.1/src/Principal.mo:80.20-80.32: warning [M0154], field append is deprecated:
`Array.append` copies its arguments and has linear complexity;
.mops/server@0.2.0/src/http-parser/MultiValueMap.mo:59.22-59.36: warning [M0154], field toArray is deprecated:
Use static library function instead.
.mops/server@0.2.0/src/http-parser/MultiValueMap.mo:88.35-88.49: warning [M0154], field toArray is deprecated:
Use static library function instead.
.mops/server@0.2.0/src/lib.mo:376.23-376.35: warning [M0154], field append is deprecated:
`Array.append` copies its arguments and has linear complexity;
/Users/miadey/dev/dfinity/app/src/app_server/Controllers/contact.mo:11.1-11.34: import error [M0009], file "/Users/miadey/dev/dfinity/app/.dfx/local/canisters/idl/be2us-64aaa-aaaaa-qaabq-cai.did" does not exist

Are you still using the dfx.json from above? It looks like you’re not declaring a canister dependency at all. Can you try declaring it like this?

Tried multiple ways without success.
I have tried with

  • app_frontend : dependencies [“app_backend”]
  • app_backend : dependencies [“app_contact”]
    also
  • app_frontend : dependencies [“app_backend”,“app_contact”] (this one gave me a circular dependency!)
    Reorganized the canister order in reverse in dfx.json, still same result.
    Wonder why it works when I deploy to the playground and not to local.
    Here is my last attempt
{
  "canisters": {
    "app_frontend": {
        "frontend": {
          "entrypoint": "src/app_frontend/src/index.html"
        },
        "source": [
          "src/app_frontend/assets",
          "dist/app_frontend/"
        ],
        "dependencies": [
            "app_contact"
            ],
        
        "type": "assets"
    },
    "app_contact": {
        "main": "src/app_contact/contact.mo",
        "type": "motoko",
        "dependencies": [
            "app_server"
            ]
    },
    "app_server": {
        "main": "src/app_server/route.mo",
        "type": "motoko"
    }
  },
  "defaults": {
    "build": {
      "args": "",
      "packtool": "mops sources"
    }
  },
  "output_env_file": ".env",
  "version": 1
}

Ok, got it working! Inverted the app_contact and app_server in the dfx.json file, deleted .dfx, .mops and now it work Still bugs me that it worked on the playground and not in local. Thank you Severin for your time.

1 Like