Taggr canister has no Candid metadata

Hey everyone,

since months we’re struggling with the issue that the Taggr canister has no Candid interface exposed on the IC dashboard.

The dfx.json file has the “name”: “candid:service” values and the did file gets correctly auto-exported. But for some reason it will not get included in the WASM file.

I have not many clues about what the issue is and would appreciate any help. Thanks!

PS: unfortunately I cannot include links here (probably as a new user), but the source-code repo is linked from the main Taggr-link webpage (see footer).

Hey there

Assuming you mean this repo: GitHub - TaggrNetwork/Taggr: Decentralized social network and publishing platform.

I just tried it locally and dfx deploy followed by dfx --identity anonymous canister metadata taggr candid:service returns the .did file just fine.

Suspicion: You have a makefile, build.sh, release.sh, and maybe something I overlooked. dfx only adds the metadata if you call dfx build, and the only file that will contain the metadata is in .dfx/<network>/canisters/<canister name>. Is this the file you are grabbing after a build? Or are you using the output of build.sh, which dfx doesn’t touch?

1 Like

Thanks so much Severin! We definitely do not use this file as I assumed the Candid metadata is addid using export_candid!() macro call… I will change the release file to export the dfx build and let you know in a few weeks (we have a pipeline of changes) if it worked.

1 Like

Actually, what you say does not seem to hold for our staging canister which is deployed like this:

  staging_deploy:
      NODE_ENV=production DFX_NETWORK=staging make fe
      FEATURES=staging dfx build
      FEATURES=staging dfx --identity prod deploy --network staging taggr

This is a very simple deployment only using build.sh configured in dfx.json.

Yet, the canister (e4i5g-biaaa-aaaao-ai7ja-cai) has no Candid interface on the IC dashboard…

If you want to check locally if the metadata is included:

[unzip file somehow]
ic-wasm <file.wasm> metadata # will show metadata sections
ic-wasm <file.wasm> metadata candid:service # will show the content of that section. candid:service is the one the dashboard and all our tooling uses

Your dfx.json says

            "metadata": [
                {
                    "name": "candid:service",
                    "networks": ["local", "ic"],
                    "visibility": "public"
                }
            ]

If you add "staging" to the networks then I would expect it to show up

1 Like

You were right! This fixed it and the interface description just appeared for the staging canister!

Now I know what to do for the production release.

Thank you so much, Severin! :pray:

PS: could you please let me know your Taggr nickname if you have one? If not I’ll create an invite for you and then tip you with $TAGGR.

1 Like