Skip to content

The source of "Failed to run HTTPS probe" and "Failed to connect to relay server" is not printed to the logs #3494

@link2xt

Description

@link2xt

I am trying to upgrade Iroh from 0.34.0 to 0.92.0 and iroh-relay from 0.28.1 to iroh-relay 0.92.0 at the same time.
Client update is here: chatmail/core#7267
Relay I have updated manually by downloading release binary and installing it on a VPS.
iroh-relay is running behind nginx.

Previously this setup with iroh-relay proxied behind nginx worked. I updated nginx config and added /ping endpoint:

                # Proxy to iroh-relay service.
                location /relay {
                        proxy_pass http://127.0.0.1:3340;
                        proxy_http_version 1.1;

                        # Upgrade header is normally set to "iroh derp http" or "websocket".
                        proxy_set_header Upgrade $http_upgrade;
                        proxy_set_header Connection "upgrade";
                }

                location /relay/probe {
                        proxy_pass http://127.0.0.1:3340;
                        proxy_http_version 1.1;
                }

                location /ping {
                        proxy_pass http://127.0.0.1:3340;
                        proxy_http_version 1.1;
                }

                location /generate_204 {
                        proxy_pass http://127.0.0.1:3340;
                        proxy_http_version 1.1;
                }

However, the connection without DNS discovery and IP address sharing does not work currently, so I tried to see why using iroh-doctor.

I cloned iroh-doctor main branch (at commit n0-computer/iroh-doctor@236d378) and configured iroh:

cat ~/.config/iroh/iroh.config.toml
[[relay_nodes]]
url = "https://example.org./"

I cleaned ~/.local/share/iroh to make sure there is no existing key configuration or anything like that.

I then ran iroh-doctor from source using RUST_LOG=debug cargo run accept --disable-discovery and RUST_LOG=debug cargo run connect --relay-url https://example.org./ <redacted> --disable-discover (the key printed by first command). It did not connect.

The first command (iroh-doctor accept) printed this to the logs:

2025-10-03T00:24:02.482602Z  WARN ep{me=ca75ec9fa5}:actor:reportgen.actor:run-probe{proto=Https delay=400ms relay_node=RelayNode { url: RelayUrl("https://example.org./"), quic: Some(RelayQuicConfig { port: 7842 }) }}: iroh::net_report::reportgen: probe failed: Failed to run HTTPS probe

I see this is failing while trying to use QUIC over port 7842. I understand it fails because nobody listens on port 7842.

Still, there is a source field in the error:

#[snafu(display("Failed to run HTTPS probe"))]
Https { source: MeasureHttpsLatencyError },

I think it should be printed somewhere, that would make it easier to understand the problem (connection failure, or wrong HTTP code, or something else) without having to guess.

Related problem showing how the errors look like:
#3377

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions