Deployed Backend "DEADLINE_EXCEEDED" error

Hey guys,

I’m a little bit stuck right now. I’m not quite sure why but when trying to mint a token I always get an error inside my backend. I guess it has something todo with my new node.

But furthermore the error only occurs in the deployed version. I had run the exact same state locally with the same .env variables and my own node and it worked.

But in the deployed backend I get the DEADLINE_EXCEEDED error shown in the screenshot:

Any thoughts why this is happening?

The deadline exceeded would suggest the node is under heavy load but it’s my private one so I think we could exclude this one. Also this would imply it won’t work on my local machine which it does.

concordium-client consensus status --grpc-ip 135.181.206.138 --grpc-port 20000
Best block:
aac844ead09d66fcf9ce8d2a9011be1e0ce9a548370cc7f75c80831131a904ef
Genesis block:
9dd9ca4d19e9393877d2c44b70f89acbfc0883c2243e5eeaecc0d1cd0503f478
Genesis time:
2021-06-09 06:00:00 UTC
Slot duration:
250ms
Epoch duration:
1h
Last finalized block:
aac844ead09d66fcf9ce8d2a9011be1e0ce9a548370cc7f75c80831131a904ef
Best block height:
6822468
Last finalized block height:
6822468

Node:
Hosted on ubuntu 22 via a hetzner server
Running the node via the latest ubuntu node client
IP: 135.181.206.138

Backend Setup:
Node.js Backend hosted on railway

This sounds like either a configuration error (are you setting very aggressive timeouts somewhere?) or perhaps a connection issue.

The node does not explicitly respond with DEADLINE_EXCEEDED anywhere, so this would be lower down the GRPC stack.

Does it immediately respond with DEADLINE_EXCEEDED? Or what is the timeline here?

Hey,

so to give you some more details:

The node was just freshly setup on a Ubuntu server hosted by Hetzner and running the Ubuntu node client.

The backend communicating with the node and calling the mint is using the normal concordium sdk and was configured with a timeout of 15000 which should be sufficient. Removing the timeout „fixes“ the deadline exceeded but the mint is still not working.

And yes the deadline exceeded error is thrown immediately at the first call.

Do I have to configure the node somehow? I just followed the normal setup instructions from your docs on a freshly installed Ubuntu.

Can you show the code that you are using that is failing?

For example if I use the following example using the Rust SDK

//! Test the `GetConsensusInfo` endpoint.
use anyhow::Context;
use clap::AppSettings;
use concordium_rust_sdk::v2;
use structopt::StructOpt;

#[derive(StructOpt)]
struct App {
    #[structopt(
        long = "node",
        help = "GRPC interface of the node.",
        default_value = "http://localhost:20000"
    )]
    endpoint: v2::Endpoint,
}

#[tokio::main(flavor = "multi_thread")]
async fn main() -> anyhow::Result<()> {
    let app = {
        let app = App::clap().global_setting(AppSettings::ColoredHelp);
        let matches = app.get_matches();
        App::from_clap(&matches)
    };

    let mut client = v2::Client::new(app.endpoint.clone())
        .await
        .context("Cannot connect.")?;

    let info = client.get_consensus_info().await?;
    println!("{:#?}", info);

    Ok(())
}

And then run it as

cargo run --example v2_get_consensus_info -- --node http://135.181.206.138:20000

I get a response from your node.