text:
Problems making relay connections, invalid peer certificate: UnknownIssuer

On a RHEL 8.6 system, I am trying to run  doctor connect q22mj7s2phuhfgv5uo3egakw6hj4v32owu7mv3tuxsbzqxz2ayha --relay-url https://use1-1.relay.iroh.network./ and I'm getting these errors:
2024-05-01T02:51:57.339294Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: actor msg, current client false
2024-05-01T02:51:57.339384Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.339652Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.358087Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45618
2024-05-01T02:51:57.358151Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.358243Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.358638Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.378385Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.378464Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.378925Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.378981Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.379463Z  WARN magicsock{me=2oupdfbvwlxiykms}:relay-actor:active-relay{url=https://use1-1.relay.iroh.network./}: iroh_net::magicsock::relay_actor: connection error: initial connection

Caused by:
    0: dial error
    1: invalid peer certificate: UnknownIssuer
2024-05-01T02:51:57.379550Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: closing connection: sender-closed url=https://use1-1.relay.iroh.network./

click for full logs (truncated arbitrarily due to github comment lenght limitations)
2024-05-01T02:51:56.959689Z  INFO iroh::commands::doctor: public key: d3a8f19435b2ee8c299210cd68a46ad255ddf3a1c32359537ab1859800bcb0d3
2024-05-01T02:51:56.959896Z  INFO iroh::commands::doctor: relay map Some(
    RelayMap {
        nodes: {
            RelayUrl(
                "https://euw1-1.relay.iroh.network./",
            ): RelayNode {
                url: RelayUrl(
                    "https://euw1-1.relay.iroh.network./",
                ),
                stun_only: false,
                stun_port: 3478,
            },
            RelayUrl(
                "https://use1-1.relay.iroh.network./",
            ): RelayNode {
                url: RelayUrl(
                    "https://use1-1.relay.iroh.network./",
                ),
                stun_only: false,
                stun_port: 3478,
            },
        },
    },
)
2024-05-01T02:51:56.961698Z DEBUG magicsock{me=2oupdfbvwlxiykms}: iroh_net::magicsock::udp_conn: binding network=V4 port=0
2024-05-01T02:51:56.961765Z DEBUG magicsock{me=2oupdfbvwlxiykms}:portmapper.service: iroh_net::portmapper: portmap starting
2024-05-01T02:51:56.961947Z DEBUG magicsock{me=2oupdfbvwlxiykms}: iroh_net::magicsock::udp_conn: candidate ports ports=[0]
2024-05-01T02:51:56.962184Z DEBUG magicsock{me=2oupdfbvwlxiykms}: iroh_net::magicsock::udp_conn: successfully bound network=V4 local_addr=0.0.0.0:44534
2024-05-01T02:51:56.962314Z DEBUG magicsock{me=2oupdfbvwlxiykms}: iroh_net::magicsock::udp_conn: binding network=V6 port=44535
2024-05-01T02:51:56.962418Z DEBUG magicsock{me=2oupdfbvwlxiykms}: iroh_net::magicsock::udp_conn: candidate ports ports=[44535, 0]
2024-05-01T02:51:56.962623Z DEBUG magicsock{me=2oupdfbvwlxiykms}: iroh_net::magicsock::udp_conn: successfully bound network=V6 local_addr=[::]:44535
2024-05-01T02:51:56.963918Z DEBUG netlink_proto::connection: reading incoming messages
2024-05-01T02:51:56.963948Z DEBUG netlink_proto::codecs: NetlinkCodec: decoding next message
2024-05-01T02:51:56.963971Z DEBUG netlink_proto::connection: forwarding unsolicited messages to the connection handle
2024-05-01T02:51:56.963989Z DEBUG netlink_proto::connection: forwarding responses to previous requests to the connection handle
2024-05-01T02:51:56.964006Z DEBUG netlink_proto::connection: handling requests
2024-05-01T02:51:56.964027Z DEBUG netlink_proto::connection: sending messages
2024-05-01T02:51:56.964192Z DEBUG magicsock{me=2oupdfbvwlxiykms}:actor: iroh_net::magicsock: scheduling periodic_stun to run immediately and in 20s
2024-05-01T02:51:56.964398Z DEBUG magicsock{me=2oupdfbvwlxiykms}:portmapper.service: iroh_net::portmapper: getting a port mapping for 172.25.105.202:44534 -> None
2024-05-01T02:51:56.964421Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor: iroh_net::netcheck: netcheck actor starting
2024-05-01T02:51:56.964604Z DEBUG magicsock{me=2oupdfbvwlxiykms}:portmapper.service:upnp: igd_next::aio::tokio: sending broadcast request to: 239.255.255.250:1900 on interface: Ok(0.0.0.0:40921)
2024-05-01T02:51:56.969249Z DEBUG magicsock{me=2oupdfbvwlxiykms}:actor:re_stun{me=2oupdfbvwlxiykms}: iroh_net::magicsock: re_stun: periodic
2024-05-01T02:51:56.969385Z DEBUG magicsock{me=2oupdfbvwlxiykms}:actor:update_endpoints: iroh_net::magicsock: starting endpoint update (periodic)
2024-05-01T02:51:56.969459Z DEBUG magicsock{me=2oupdfbvwlxiykms}:actor:update_endpoints:update_net_info: iroh_net::magicsock: requesting netcheck report
2024-05-01T02:51:56.970132Z DEBUG magicsock{me=2oupdfbvwlxiykms}:portmapper.service: iroh_net::portmapper: getting a port mapping for 172.25.105.202:44534 -> None
2024-05-01T02:51:56.970409Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: reportstate actor starting port_mapper=true
2024-05-01T02:51:56.970977Z DEBUG magicsock{me=2oupdfbvwlxiykms}:portmapper.service:upnp: igd_next::aio::tokio: sending broadcast request to: 239.255.255.250:1900 on interface: Ok(0.0.0.0:51492)
2024-05-01T02:51:56.976596Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: Local interfaces if_state=1. lo Loopback ipv4=[127.0.0.1/8] ipv6=[]; 2. ens192 Ethernet ipv4=[172.25.105.202/22] ipv6=[] (default);
2024-05-01T02:51:56.977800Z DEBUG magicsock{me=2oupdfbvwlxiykms}:portmapper.service:portmapper.probe: igd_next::aio::tokio: sending broadcast request to: 239.255.255.250:1900 on interface: Ok(0.0.0.0:52142)
2024-05-01T02:51:56.977964Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: starting probe
2024-05-01T02:51:56.978096Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: Performing DNS A lookup for relay addr proto=StunIpv4 hostname=euw1-1.relay.iroh.network.
2024-05-01T02:51:56.978310Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_proto::xfer::dns_handle: querying: euw1-1.relay.iroh.network. A
2024-05-01T02:51:56.978400Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_resolver::name_server::name_server_pool: sending request: [Query { name: Name("euw1-1.relay.iroh.network."), query_type: A, query_class: IN }]
2024-05-01T02:51:56.978529Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_resolver::name_server::name_server: reconnecting: NameServerConfig { socket_addr: 10.24.9.11:53, protocol: Udp, tls_dns_name: None, trust_negative_responses: false, tls_config: None, bind_addr: None }
2024-05-01T02:51:56.978643Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_proto::xfer: enqueueing message:QUERY:[Query { name: Name("euw1-1.relay.iroh.network."), query_type: A, query_class: IN }]
2024-05-01T02:51:56.978709Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_resolver::name_server::name_server: reconnecting: NameServerConfig { socket_addr: 10.24.9.10:53, protocol: Udp, tls_dns_name: None, trust_negative_responses: false, tls_config: None, bind_addr: None }
2024-05-01T02:51:56.978780Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_proto::xfer: enqueueing message:QUERY:[Query { name: Name("euw1-1.relay.iroh.network."), query_type: A, query_class: IN }]
2024-05-01T02:51:56.978928Z DEBUG hickory_proto::udp::udp_client_stream: final message: ; header 34666:QUERY:RD:NoError:QUERY:0/0/0
; query
;; euw1-1.relay.iroh.network. IN A

2024-05-01T02:51:56.979038Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: starting probe
2024-05-01T02:51:56.979143Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: Performing DNS A lookup for relay addr proto=StunIpv4 hostname=use1-1.relay.iroh.network.
2024-05-01T02:51:56.979268Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_proto::xfer::dns_handle: querying: use1-1.relay.iroh.network. A
2024-05-01T02:51:56.979338Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_resolver::name_server::name_server_pool: sending request: [Query { name: Name("use1-1.relay.iroh.network."), query_type: A, query_class: IN }]
2024-05-01T02:51:56.979429Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_resolver::name_server::name_server: existing connection: NameServerConfig { socket_addr: 10.24.9.11:53, protocol: Udp, tls_dns_name: None, trust_negative_responses: false, tls_config: None, bind_addr: None }
2024-05-01T02:51:56.979488Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_proto::xfer: enqueueing message:QUERY:[Query { name: Name("use1-1.relay.iroh.network."), query_type: A, query_class: IN }]
2024-05-01T02:51:56.979548Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_resolver::name_server::name_server: existing connection: NameServerConfig { socket_addr: 10.24.9.10:53, protocol: Udp, tls_dns_name: None, trust_negative_responses: false, tls_config: None, bind_addr: None }
2024-05-01T02:51:56.979599Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_proto::xfer: enqueueing message:QUERY:[Query { name: Name("use1-1.relay.iroh.network."), query_type: A, query_class: IN }]
2024-05-01T02:51:56.979720Z DEBUG hickory_proto::udp::udp_client_stream: final message: ; header 42245:QUERY:RD:NoError:QUERY:0/0/0
; query
;; use1-1.relay.iroh.network. IN A

2024-05-01T02:51:56.980090Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_proto::udp::udp_stream: created socket successfully
2024-05-01T02:51:56.980199Z DEBUG hickory_proto::udp::udp_client_stream: final message: ; header 10088:QUERY:RD:NoError:QUERY:0/0/0
; query
;; euw1-1.relay.iroh.network. IN A

2024-05-01T02:51:56.980253Z DEBUG hickory_proto::udp::udp_client_stream: final message: ; header 9946:QUERY:RD:NoError:QUERY:0/0/0
; query
;; use1-1.relay.iroh.network. IN A

2024-05-01T02:51:56.980390Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_proto::udp::udp_stream: created socket successfully
2024-05-01T02:51:56.980503Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_proto::udp::udp_stream: created socket successfully
2024-05-01T02:51:56.980581Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_proto::udp::udp_stream: created socket successfully
2024-05-01T02:51:56.981064Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_proto::udp::udp_client_stream: received message id: 42245
2024-05-01T02:51:56.981181Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_resolver::error: Response:; header 42245:RESPONSE:RD,RA:NoError:QUERY:1/0/0
; query
;; use1-1.relay.iroh.network. IN A
; answers 1
use1-1.relay.iroh.network. 235 IN A 5.161.115.11
; nameservers 0
; additionals 0

2024-05-01T02:51:56.981295Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: hickory_resolver::error: Response:; header 42245:RESPONSE:RD,RA:NoError:QUERY:1/0/0
; query
;; use1-1.relay.iroh.network. IN A
; answers 1
use1-1.relay.iroh.network. 235 IN A 5.161.115.11
; nameservers 0
; additionals 0

2024-05-01T02:51:56.981585Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://use1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: sending StunIpv4 probe relay_addr=5.161.115.11:3478 txid=transaction id (0x8FC6889C62F833F3672B6C38)
2024-05-01T02:51:56.981733Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_proto::udp::udp_client_stream: received message id: 34666
2024-05-01T02:51:56.981823Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_resolver::error: Response:; header 34666:RESPONSE:RD,RA:NoError:QUERY:1/0/0
; query
;; euw1-1.relay.iroh.network. IN A
; answers 1
euw1-1.relay.iroh.network. 235 IN A 116.203.71.221
; nameservers 0
; additionals 0

2024-05-01T02:51:56.981932Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: hickory_resolver::error: Response:; header 34666:RESPONSE:RD,RA:NoError:QUERY:1/0/0
; query
;; euw1-1.relay.iroh.network. IN A
; answers 1
euw1-1.relay.iroh.network. 235 IN A 116.203.71.221
; nameservers 0
; additionals 0

2024-05-01T02:51:56.982148Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 0ns to https://euw1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: sending StunIpv4 probe relay_addr=116.203.71.221:3478 txid=transaction id (0x4199982A8C9A6AC653C459D5)
2024-05-01T02:51:57.000698Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor: iroh_net::netcheck: received known STUN packet src=5.161.115.11:3478 txn=transaction id (0x8FC6889C62F833F3672B6C38)
2024-05-01T02:51:57.000987Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: finished probe probe_report=ProbeReport { ipv4_can_send: true, ipv6_can_send: false, icmpv4: None, icmpv6: None, latency: Some(19.298638ms), probe: StunIpv4 { delay: 0ns, node: RelayNode { url: RelayUrl("https://use1-1.relay.iroh.network./"), stun_only: false, stun_port: 3478 } }, addr: Some(160.231.28.180:29487) }
2024-05-01T02:51:57.079726Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 100ms to https://euw1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: starting probe
2024-05-01T02:51:57.079973Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 100ms to https://euw1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: Performing DNS A lookup for relay addr proto=StunIpv4 hostname=euw1-1.relay.iroh.network.
2024-05-01T02:51:57.080435Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=STUN Ipv4 after 100ms to https://euw1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: sending StunIpv4 probe relay_addr=116.203.71.221:3478 txid=transaction id (0x7ADDFBEC01B19CCA54DEC296)
2024-05-01T02:51:57.085874Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor: iroh_net::netcheck: received known STUN packet src=116.203.71.221:3478 txn=transaction id (0x4199982A8C9A6AC653C459D5)
2024-05-01T02:51:57.086153Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: finished probe probe_report=ProbeReport { ipv4_can_send: true, ipv6_can_send: false, icmpv4: None, icmpv6: None, latency: Some(103.873137ms), probe: StunIpv4 { delay: 0ns, node: RelayNode { url: RelayUrl("https://euw1-1.relay.iroh.network./"), stun_only: false, stun_port: 3478 } }, addr: Some(160.231.28.180:29488) }
2024-05-01T02:51:57.086237Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: Have enough probe reports, aborting further probes soon reports=2 delay=207.746274ms
2024-05-01T02:51:57.102353Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:hairpin.actor: iroh_net::netcheck::reportgen::hairpin: hairpinning done in 101.110341ms, res: false
2024-05-01T02:51:57.178963Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: Captive portal check started after 200ms
2024-05-01T02:51:57.179557Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:captive-portal: reqwest::connect: starting new connection: http://use1-1.relay.iroh.network./
2024-05-01T02:51:57.179822Z DEBUG hyper::client::connect::dns: resolving host="use1-1.relay.iroh.network."
2024-05-01T02:51:57.181262Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:captive-portal: hyper::client::connect::http: connecting to 5.161.115.11:80
2024-05-01T02:51:57.183762Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor: iroh_net::netcheck: received known STUN packet src=116.203.71.221:3478 txn=transaction id (0x7ADDFBEC01B19CCA54DEC296)
2024-05-01T02:51:57.199981Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:captive-portal: hyper::client::connect::http: connected to 5.161.115.11:80
2024-05-01T02:51:57.200426Z DEBUG hyper::proto::h1::io: flushed 131 bytes
2024-05-01T02:51:57.281058Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=ICMPv4 after 300ms to https://euw1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: starting probe
2024-05-01T02:51:57.281104Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor:run_probe{probe=HTTPS after 300ms to https://euw1-1.relay.iroh.network./}: iroh_net::netcheck::reportgen: starting probe
2024-05-01T02:51:57.281375Z DEBUG iroh_net::netcheck::reportgen: probe set aborted: ReportCheck says probe set no longer useful probe=IcmpV4 { delay: 300ms, node: RelayNode { url: RelayUrl("https://euw1-1.relay.iroh.network./"), stun_only: false, stun_port: 3478 } }
2024-05-01T02:51:57.281383Z DEBUG iroh_net::netcheck::reportgen: probe set aborted: ReportCheck says probe set no longer useful probe=Https { delay: 300ms, node: RelayNode { url: RelayUrl("https://euw1-1.relay.iroh.network./"), stun_only: false, stun_port: 3478 } }
2024-05-01T02:51:57.286245Z DEBUG hyper::proto::h1::conn: parse error (invalid HTTP version parsed) with 3010 bytes
2024-05-01T02:51:57.286272Z DEBUG hyper::proto::h1::dispatch: read_head error: invalid HTTP version parsed
2024-05-01T02:51:57.286620Z  WARN magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: check_captive_portal error: error sending request for url (http://use1-1.relay.iroh.network./generate_204): invalid HTTP version parsed
2024-05-01T02:51:57.294951Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: all tasks done
2024-05-01T02:51:57.295007Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: aborting 2 probe sets, already have enough reports
2024-05-01T02:51:57.295074Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: Sending report to netcheck actor
2024-05-01T02:51:57.295141Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor:reportgen.actor: iroh_net::netcheck::reportgen: reportgen actor finished
2024-05-01T02:51:57.295287Z DEBUG magicsock{me=2oupdfbvwlxiykms}:netcheck.actor: iroh_net::netcheck: Report { udp: true, ipv6: false, ipv4: true, ipv6_can_send: false, ipv4_can_send: true, os_has_ipv6: false, icmpv4: None, icmpv6: None, mapping_varies_by_dest_ip: Some(true), mapping_varies_by_dest_ipv6: None, hair_pinning: Some(false), portmap_probe: None, preferred_relay: Some(RelayUrl("https://use1-1.relay.iroh.network./")), relay_latency: RelayLatencies({RelayUrl("https://euw1-1.relay.iroh.network./"): 103.873137ms, RelayUrl("https://use1-1.relay.iroh.network./"): 19.298638ms}), relay_v4_latency: RelayLatencies({RelayUrl("https://euw1-1.relay.iroh.network./"): 103.873137ms, RelayUrl("https://use1-1.relay.iroh.network./"): 19.298638ms}), relay_v6_latency: RelayLatencies({}), global_v4: Some(160.231.28.180:29487), global_v6: None, captive_portal: None }
2024-05-01T02:51:57.295531Z  INFO magicsock{me=2oupdfbvwlxiykms}:actor: iroh_net::magicsock: home is now relay https://use1-1.relay.iroh.network./, was None
2024-05-01T02:51:57.295675Z DEBUG pkarr_publish{me=2oupdfbvwlxiykms}: iroh_net::discovery::pkarr_publish: Publish node info to pkarr (info changed)
2024-05-01T02:51:57.295720Z  INFO pkarr_publish{me=2oupdfbvwlxiykms}: iroh_net::discovery::pkarr_publish: Publish node info to pkarr relay_url=Some("https://use1-1.relay.iroh.network./")
2024-05-01T02:51:57.296301Z DEBUG magicsock{me=2oupdfbvwlxiykms}:actor: iroh_net::magicsock: endpoints changed: 160.231.28.180:29487 (stun), 160.231.28.180:44534 (stun4localport), 172.25.105.202:44534 (local)
2024-05-01T02:51:57.296353Z  INFO iroh::commands::doctor: dialing PublicKey(q22mj7s2phuhfgv5)
2024-05-01T02:51:57.296393Z DEBUG magicsock{me=2oupdfbvwlxiykms}:actor: iroh_net::magicsock: scheduling periodic_stun to run in 20s
2024-05-01T02:51:57.296442Z DEBUG magicsock{me=2oupdfbvwlxiykms}:actor: iroh_net::magicsock: endpoint update done (periodic)
2024-05-01T02:51:57.296521Z  INFO add_node_addr{me=2oupdfbvwlxiykms}:add_node_addr{node=q22mj7s2phuhfgv5}: iroh_net::magicsock::node_map: inserting new node in NodeMap node=q22mj7s2phuhfgv5 relay_url=Some(RelayUrl("https://use1-1.relay.iroh.network./"))
2024-05-01T02:51:57.296559Z DEBUG pkarr_publish{me=2oupdfbvwlxiykms}: reqwest::connect: starting new connection: https://dns.iroh.link/
2024-05-01T02:51:57.296584Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: connect relay https://use1-1.relay.iroh.network./ for peer None
2024-05-01T02:51:57.296627Z DEBUG add_node_addr{me=2oupdfbvwlxiykms}:add_node_addr{node=q22mj7s2phuhfgv5}: iroh_net::magicsock::node_map::node_state: added new direct paths for endpoint new={} paths=[]
2024-05-01T02:51:57.296677Z DEBUG hyper::client::connect::dns: resolving host="dns.iroh.link"
2024-05-01T02:51:57.296813Z DEBUG iroh_net::magic_endpoint: connecting to q22mj7s2phuhfgv5uo3egakw6hj4v32owu7mv3tuxsbzqxz2ayha: (via [fd15:70a:510b::1]:12345 - {})
2024-05-01T02:51:57.296630Z  INFO magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: adding connection to relay: https://use1-1.relay.iroh.network./ for home-keep-alive
2024-05-01T02:51:57.297440Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: 1 active relay conns: relay-https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.297470Z DEBUG pkarr_publish{me=2oupdfbvwlxiykms}: hyper::client::connect::http: connecting to 49.13.207.244:443
2024-05-01T02:51:57.297542Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:active-relay{url=https://use1-1.relay.iroh.network./}: iroh_net::magicsock::relay_actor: initial dial https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.297580Z DEBUG rustls::client::hs: No cached session for DnsName("localhost")
2024-05-01T02:51:57.297637Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: initial connect, current client false
2024-05-01T02:51:57.297723Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.297962Z DEBUG rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.297971Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_proto::xfer::dns_handle: querying: use1-1.relay.iroh.network. AAAA
2024-05-01T02:51:57.298063Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_resolver::name_server::name_server_pool: sending request: [Query { name: Name("use1-1.relay.iroh.network."), query_type: AAAA, query_class: IN }]
2024-05-01T02:51:57.298169Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_resolver::name_server::name_server: existing connection: NameServerConfig { socket_addr: 10.24.9.11:53, protocol: Udp, tls_dns_name: None, trust_negative_responses: false, tls_config: None, bind_addr: None }
2024-05-01T02:51:57.298220Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_proto::xfer: enqueueing message:QUERY:[Query { name: Name("use1-1.relay.iroh.network."), query_type: AAAA, query_class: IN }]
2024-05-01T02:51:57.298283Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_resolver::name_server::name_server: existing connection: NameServerConfig { socket_addr: 10.24.9.10:53, protocol: Udp, tls_dns_name: None, trust_negative_responses: false, tls_config: None, bind_addr: None }
2024-05-01T02:51:57.298327Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_proto::xfer: enqueueing message:QUERY:[Query { name: Name("use1-1.relay.iroh.network."), query_type: AAAA, query_class: IN }]
2024-05-01T02:51:57.298495Z DEBUG hickory_proto::udp::udp_client_stream: final message: ; header 61781:QUERY:RD:NoError:QUERY:0/0/0
; query
;; use1-1.relay.iroh.network. IN AAAA

2024-05-01T02:51:57.298569Z DEBUG hickory_proto::udp::udp_client_stream: final message: ; header 64447:QUERY:RD:NoError:QUERY:0/0/0
; query
;; use1-1.relay.iroh.network. IN AAAA

2024-05-01T02:51:57.298721Z DEBUG poll_send{me=2oupdfbvwlxiykms}:get_send_addrs{node=q22mj7s2phuhfgv5}:want_call_me_maybe: iroh_net::magicsock::node_map::node_state: no previous full ping: need full ping
2024-05-01T02:51:57.298733Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_proto::udp::udp_stream: created socket successfully
2024-05-01T02:51:57.298779Z DEBUG poll_send{me=2oupdfbvwlxiykms}:get_send_addrs{node=q22mj7s2phuhfgv5}: iroh_net::magicsock::node_map::node_state: relay path needs ping url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.298811Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_proto::udp::udp_stream: created socket successfully
2024-05-01T02:51:57.298824Z DEBUG poll_send{me=2oupdfbvwlxiykms}:get_send_addrs{node=q22mj7s2phuhfgv5}: iroh_net::magicsock::node_map::node_state: prune addresses: 0 pruned paths=[]
2024-05-01T02:51:57.298886Z DEBUG poll_send{me=2oupdfbvwlxiykms}:get_send_addrs{node=q22mj7s2phuhfgv5}: iroh_net::magicsock::node_map::node_state: sending pings to endpoint ping_dsts=[] dst=q22mj7s2phuhfgv5 paths=[]
2024-05-01T02:51:57.298932Z DEBUG poll_send{me=2oupdfbvwlxiykms}:get_send_addrs{node=q22mj7s2phuhfgv5}: iroh_net::magicsock::node_map::node_state: queue call-me-maybe url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.299056Z DEBUG poll_send{me=2oupdfbvwlxiykms}:handle_ping_action: iroh_net::magicsock: send disco message (relay) node=q22mj7s2phuhfgv5 url=https://use1-1.relay.iroh.network./ msg=CallMeMaybe
2024-05-01T02:51:57.299491Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_proto::udp::udp_client_stream: received message id: 61781
2024-05-01T02:51:57.299591Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_resolver::error: Response:; header 61781:RESPONSE:RD,RA:NoError:QUERY:1/0/0
; query
;; use1-1.relay.iroh.network. IN AAAA
; answers 1
use1-1.relay.iroh.network. 236 IN AAAA 2a01:4ff:f0:81d7::1
; nameservers 0
; additionals 0

2024-05-01T02:51:57.299687Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: hickory_resolver::error: Response:; header 61781:RESPONSE:RD,RA:NoError:QUERY:1/0/0
; query
;; use1-1.relay.iroh.network. IN AAAA
; answers 1
use1-1.relay.iroh.network. 236 IN AAAA 2a01:4ff:f0:81d7::1
; nameservers 0
; additionals 0

2024-05-01T02:51:57.299836Z DEBUG poll_send{me=2oupdfbvwlxiykms}:handle_ping_action: iroh_net::magicsock: call-me-maybe sent dstkey=q22mj7s2phuhfgv5 relayurl=RelayUrl("https://use1-1.relay.iroh.network./")
2024-05-01T02:51:57.299847Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.299968Z DEBUG poll_send{me=2oupdfbvwlxiykms}:handle_ping_action: iroh_net::magicsock: send disco message (relay) node=q22mj7s2phuhfgv5 url=https://use1-1.relay.iroh.network./ msg=Ping(tx=a4a9a55c89a2ac0a259c1c4e)
2024-05-01T02:51:57.300165Z DEBUG poll_send{me=2oupdfbvwlxiykms}:handle_ping_action: iroh_net::magicsock: ping sent (polled) dst=Relay(https://use1-1.relay.iroh.network./) tx=a4a9a55c89a2ac0a259c1c4e purpose=Discovery
2024-05-01T02:51:57.300333Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: connect relay https://use1-1.relay.iroh.network./ for peer Some(PublicKey(q22mj7s2phuhfgv5))
2024-05-01T02:51:57.318253Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45616
2024-05-01T02:51:57.318320Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.318397Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.318786Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.338269Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.338350Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.338835Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.338905Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.339294Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: actor msg, current client false
2024-05-01T02:51:57.339384Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.339652Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.358087Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45618
2024-05-01T02:51:57.358151Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.358243Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.358638Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.378385Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.378464Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.378925Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.378981Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.379463Z  WARN magicsock{me=2oupdfbvwlxiykms}:relay-actor:active-relay{url=https://use1-1.relay.iroh.network./}: iroh_net::magicsock::relay_actor: connection error: initial connection

Caused by:
    0: dial error
    1: invalid peer certificate: UnknownIssuer
2024-05-01T02:51:57.379550Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: closing connection: sender-closed url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.379675Z  INFO magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: adding connection to relay: https://use1-1.relay.iroh.network./ for PublicKey(q22mj7s2phuhfgv5)
2024-05-01T02:51:57.380071Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: 1 active relay conns: relay-https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.380087Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: initial connect, current client false
2024-05-01T02:51:57.380171Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.380204Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:active-relay{url=https://use1-1.relay.iroh.network./}: iroh_net::magicsock::relay_actor: initial dial https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.380427Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.397484Z DEBUG pkarr_publish{me=2oupdfbvwlxiykms}: hyper::client::connect::http: connected to 49.13.207.244:443
2024-05-01T02:51:57.397582Z DEBUG pkarr_publish{me=2oupdfbvwlxiykms}: rustls::client::hs: No cached session for DnsName("dns.iroh.link")
2024-05-01T02:51:57.397980Z DEBUG pkarr_publish{me=2oupdfbvwlxiykms}: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.398622Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45620
2024-05-01T02:51:57.398682Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.398762Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.399160Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.418905Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.418984Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.419440Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.419501Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.419877Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: send, current client false
2024-05-01T02:51:57.419970Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.420240Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.438574Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45622
2024-05-01T02:51:57.438633Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.438719Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.439122Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.458665Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.458747Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.459231Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.459292Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.459672Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: actor msg, current client false
2024-05-01T02:51:57.459758Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.460046Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.460251Z  WARN magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: send: failed DialIO(Custom { kind: InvalidData, error: InvalidCertificate(UnknownIssuer) }) url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.460378Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: connect relay https://use1-1.relay.iroh.network./ for peer Some(PublicKey(q22mj7s2phuhfgv5))
2024-05-01T02:51:57.478458Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45624
2024-05-01T02:51:57.478513Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.478593Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.478993Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.481413Z DEBUG magicsock{me=2oupdfbvwlxiykms}:portmapper.service:portmapper.probe: iroh_net::portmapper::nat_pmp: probe failed: deadline has elapsed
2024-05-01T02:51:57.481557Z DEBUG magicsock{me=2oupdfbvwlxiykms}:portmapper.service:portmapper.probe: iroh_net::portmapper::pcp: probe failed: deadline has elapsed
2024-05-01T02:51:57.498607Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.498676Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.499130Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.499186Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.499628Z  WARN magicsock{me=2oupdfbvwlxiykms}:relay-actor:active-relay{url=https://use1-1.relay.iroh.network./}: iroh_net::magicsock::relay_actor: connection error: initial connection

Caused by:
    0: dial error
    1: invalid peer certificate: UnknownIssuer
2024-05-01T02:51:57.499714Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: closing connection: sender-closed url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.499825Z  INFO magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: adding connection to relay: https://use1-1.relay.iroh.network./ for PublicKey(q22mj7s2phuhfgv5)
2024-05-01T02:51:57.499983Z DEBUG pkarr_publish{me=2oupdfbvwlxiykms}: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.500034Z DEBUG pkarr_publish{me=2oupdfbvwlxiykms}: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.500226Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: 1 active relay conns: relay-https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.500343Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:active-relay{url=https://use1-1.relay.iroh.network./}: iroh_net::magicsock::relay_actor: initial dial https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.500413Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: initial connect, current client false
2024-05-01T02:51:57.500457Z DEBUG pkarr_publish{me=2oupdfbvwlxiykms}: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.500485Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.500504Z DEBUG pkarr_publish{me=2oupdfbvwlxiykms}: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.500792Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.500848Z  WARN pkarr_publish{me=2oupdfbvwlxiykms}: iroh_net::discovery::pkarr_publish: Failed to publish to pkarr err=error sending request for url (https://dns.iroh.link/pkarr/4qwxdfbismzeakc1ndgstjdk4jk75h7bacti1w54sgn3oyfhsdjo): error trying to connect: invalid peer certificate: UnknownIssuer

Caused by:
    0: error trying to connect: invalid peer certificate: UnknownIssuer
    1: invalid peer certificate: UnknownIssuer url=https://dns.iroh.link/pkarr
2024-05-01T02:51:57.519039Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45626
2024-05-01T02:51:57.519104Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.519185Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.519572Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.539156Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.539236Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.539685Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.539739Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.540126Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: send, current client false
2024-05-01T02:51:57.540214Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.540479Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.558908Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45628
2024-05-01T02:51:57.558963Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.559046Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.559437Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.579149Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.579219Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.579659Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.579713Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.580052Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: actor msg, current client false
2024-05-01T02:51:57.580136Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.580395Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.580599Z  WARN magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: send: failed DialIO(Custom { kind: InvalidData, error: InvalidCertificate(UnknownIssuer) }) url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.580729Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: connect relay https://use1-1.relay.iroh.network./ for peer Some(PublicKey(q22mj7s2phuhfgv5))
2024-05-01T02:51:57.598638Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45630
2024-05-01T02:51:57.598697Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.598774Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.599167Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.618756Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.618851Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.619311Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.619371Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.619822Z  WARN magicsock{me=2oupdfbvwlxiykms}:relay-actor:active-relay{url=https://use1-1.relay.iroh.network./}: iroh_net::magicsock::relay_actor: connection error: initial connection

Caused by:
    0: dial error
    1: invalid peer certificate: UnknownIssuer
2024-05-01T02:51:57.619928Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: closing connection: sender-closed url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.620040Z  INFO magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: adding connection to relay: https://use1-1.relay.iroh.network./ for PublicKey(q22mj7s2phuhfgv5)
2024-05-01T02:51:57.620423Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: 1 active relay conns: relay-https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.620436Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: initial connect, current client false
2024-05-01T02:51:57.620509Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.620533Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:active-relay{url=https://use1-1.relay.iroh.network./}: iroh_net::magicsock::relay_actor: initial dial https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.620754Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.639014Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45632
2024-05-01T02:51:57.639074Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.639148Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.639534Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.659130Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.659206Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.659672Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.659729Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.660129Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: send, current client false
2024-05-01T02:51:57.660223Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.660496Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.678764Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45634
2024-05-01T02:51:57.678875Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.678998Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.679600Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.699308Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.699388Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.699852Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.699917Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.700288Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client: iroh_net::relay::http::client: connect: actor msg, current client false
2024-05-01T02:51:57.700383Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: dial url self.url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.700657Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: connecting to 5.161.115.11:443
2024-05-01T02:51:57.700885Z  WARN magicsock{me=2oupdfbvwlxiykms}:relay-actor: iroh_net::magicsock::relay_actor: send: failed DialIO(Custom { kind: InvalidData, error: InvalidCertificate(UnknownIssuer) }) url=https://use1-1.relay.iroh.network./
2024-05-01T02:51:57.719105Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: TCP stream connected server_addr=Ok(5.161.115.11:443) local_addr=172.25.105.202:45636
2024-05-01T02:51:57.719174Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: iroh_net::relay::http::client: Starting TLS handshake
2024-05-01T02:51:57.719267Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: No cached session for DnsName("use1-1.relay.iroh.network.")
2024-05-01T02:51:57.719667Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Not resuming any session
2024-05-01T02:51:57.741501Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384
2024-05-01T02:51:57.741578Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: Not resuming
2024-05-01T02:51:57.742038Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck]
2024-05-01T02:51:57.742095Z DEBUG magicsock{me=2oupdfbvwlxiykms}:relay-actor:client:connect: rustls::client::hs: ALPN protocol is None
2024-05-01T02:51:57.742540Z  WARN magicsock{me=2oupdfbvwlxiykms}:relay-actor:active-relay{url=https://use1-1.relay.iroh.network./}: iroh_net::magicsock::relay_actor: connection error: initial connection

Caused by:
    0: dial error
    1: invalid peer certificate: UnknownIssuer
2024-05-01T02:51:57.799274Z DEBUG discovery{me=2oupdfbvwlxiykms node=q22mj7s2phuhfgv5}: iroh_net::discovery: discovery: start
2024-05-01T02:51:57.799503Z DEBUG discovery{me=2oupdfbvwlxiykms node=q22mj7s2phuhfgv5}: hickory_proto::xfer::dns_handle: querying: _iroh.o44cj914x8w8fgi7wq5rgyks68jhi54qsw9ci5uwz1b3oz34ya8y.dns.iroh.link. TXT
2024-05-01T02:51:57.799584Z DEBUG discovery{me=2oupdfbvwlxiykms node=q22mj7s2phuhfgv5}: hickory_resolver::name_server::name_server_pool: sending request: [Query { name: Name("_iroh.o44cj914x8w8fgi7wq5rgyks68jhi54qsw9ci5uwz1b3oz34ya8y.dns.iroh.link."), query_type: TXT, query_class: IN }]
2024-05-01T02:51:57.799688Z DEBUG discovery{me=2oupdfbvwlxiykms node=q22mj7s2phuhfgv5}: hickory_resolver::name_server::name_server: existing connection: NameServerConfig { socket_addr: 10.24.9.11:53, protocol: Udp, tls_dns_name: None, trust_negative_responses: false, tls_config: None, bind_addr: None }
2024-05-01T02:51:57.799736Z DEBUG discovery{me=2oupdfbvwlxiykms node=q22mj7s2phuhfgv5}: hickory_proto::xfer: enqueueing message:QUERY:[Query { name: Name("_iroh.o44cj914x8w8fgi7wq5rgyks68jhi54qsw9ci5uwz1b3oz34ya8y.dns.iroh.link."), query_type: TXT, query_class: IN }]
2024-05-01T02:51:57.799799Z DEBUG discovery{me=2oupdfbvwlxiykms node=q22mj7s2phuhfgv5}: hickory_resolver::name_server::name_server: existing connection: NameServerConfig { socket_addr: 10.24.9.10:53, protocol: Udp, tls_dns_name: None, trust_negative_responses: false, tls_config: None, bind_addr: None }
2024-05-01T02:51:57.799847Z DEBUG discovery{me=2oupdfbvwlxiykms node=q22mj7s2phuhfgv5}: hickory_proto::xfer: enqueueing message:QUERY:[Query { name: Name("_iroh.o44cj914x8w8fgi7wq5rgyks68jhi54qsw9ci5uwz1b3oz34ya8y.dns.iroh.link."), query_type: TXT, query_class: IN }]
2024-05-01T02:51:57.800019Z DEBUG hickory_proto::udp::udp_client_stream: final message: ; header 39108:QUERY:RD:NoError:QUERY:0/0/0
; query
;; _iroh.o44cj914x8w8fgi7wq5rgyks68jhi54qsw9ci5uwz1b3oz34ya8y.dns.iroh.link. IN TXT

2024-05-01T02:51:57.800051Z DEBUG hickory_proto::udp::udp_client_stream: final message: ; header 2366:QUERY:RD:NoError:QUERY:0/0/0
; query
;; _iroh.o44cj914x8w8fgi7wq5rgyks68jhi54qsw9ci5uwz1b3oz34ya8y.dns.iroh.link. IN TXT

I'm running 6fbf4a92c98c394e888f3e33f40e20ede3ca7bcb on both sides of the doctor connection.

The server uses a Let's Encrypt TLS certificate.  This error suggests your system's configuration does not trust Let's Encrypt certificates.

Good observation.  When trying to debug further, I tried to curl https://euw1-1.relay.iroh.network./ which also showed certificate issues.  But then a short time later, this started working, and I can't explain why.  I'm assuming you didn't change anything on your infra.    (iroh doctor is now working, too).   So let me work on reproducing this again on my end

I caught it in the act of working then not working:
lxd@lin-lxd01sim in iroh on  main 🦀
❯ curl 'https://euw1-1.relay.iroh.network./'
<html><body>
<h1>RELAY</h1>
<p>
  This is an
  <a href="https://iroh.computer/">Iroh</a> Relay
  server.
</p>

# a few successful iroh-doctor invocations later...

lxd@lin-lxd01sim in iroh on  main 🦀
❯ curl 'https://euw1-1.relay.iroh.network./'
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

I'd assume it's related to https://letsencrypt.org/2024/04/12/changes-to-issuance-chains
Which will probably need updating root certs on a lot of peoples machines (similar to what happened in 2021 iirc).
yum check-update or equivalent might help here. Alternatively we might just need to wait out for the intermediates to settle down.
My best current guess is that depending on request you still get routed to different intermediates and the switch is not finished yet.

Ok, after a bunch more testing, I'm still very confused about what's happening, but I feel like the problem must be on my end somehow.  Most of the time, things are working, but not 100% of the time.
I'm not sure what you can do about this, so probably the best thing to do is close this issue

Thanks for taking the time to report @eminence! I'm going to close this for now, but we can re-open should you need.

authors: Arqu b5 eminence flub


text:
feat(iroh-net): Log the crate version number

Description
This adds a DEBUG-level log logging the crate version number.
Breaking Changes
None
Notes & open questions
This is not the first log message appearing, the MagicSock and a few
other pieces already have been logging by this time.  Also I'm not
particularly bound to this wording.  Maybe there are other things that
should be added to this line?
Change checklist

[x] Self-review.
[ ] Documentation updates following the style guide, if relevant.
[ ] Tests if relevant.
[ ] All breaking changes documented.

Did you test whether the environment variable reports the version of the crate, even if it's a deep transitive dependency? I.e. I'd like to avoid a case where it reports version "0.1.0", if you compile "my-crate v 0.1.0" which depends on "iroh-net v 0.26.0"

Pretty sure that's fine: https://doc.rust-lang.org/cargo/reference/environment-variables.html

source: gharchive/pull-request

license_type: permissive

license_source: github-api


text:
Clean up dependencies

This contains two commits:

Removes unused dependencies.
Sorts dependencies in Cargo.tom files.

This is meant to be committed without squashing, see the commit messages for details.
If the 2nd commit is too controversial I'm happy to remove it.

@b5 great, added that


text:
🛑 IpHost is down

In 15ddd33, IpHost (https://www.iphost.net) was down:

HTTP code: 0
Response time: 0 ms

Resolved: IpHost is back up in 605ced4 after 9 minutes.

source: gharchive/issue

license: MIT


text:
Game Submission: SwordStrike

My first game + second project ever with libdragon!
I may add some more commits before deadline, but in a fully playable state on both Ares + original console (tested with ED64).
I was unable to display player labels during match due to font bug, but was able to display them during the countdown to avoid crashing as a workaround

Thank you for your submission!

Merged to main into the unified ROM.

authors: JVChiarella buu342 rasky


text:
Fetching and Setting Field Values example not working

hi the Fetching and Setting Field Values example in the page http://ncrafts.github.io/tabular-input/ is not working. Tried

running in Chrome, FF and IE

Seems to work for me. See screenshot.

Doesn't seem to work for me as well

I'll need some steps to replicate the issue. Browser and OS info would help, along with screenshots.

authors: Jarajesh ahmadalfy nCrafts

repo: nCrafts/tabular-input


text:
Namespace generating issue

When you generate something inside module, namespace has "app" in lowercase, that is not correct, it should be ucfirst "App"

It was really better before. I really don't like the current directory even if simulates the laravel folder structure.
At least yes, It should be ucfirst.  It can't be assumed every module has a composer.json file.

i publish the config file, and in the config/modules.php I fix name in all generator
for example
'factory' => ['path' => 'database/factories', 'namespace' => 'Database/Factories', 'generate' => true],

the real problem for me was the i didn't want to change folder to CamelCase and in the mean time I wanted CamelCase namespace,
since this library will make composer.json in each directory and it has all folder namespaces in it, I used composer repository like this
"repositories": [
        {
            "type": "path",
            "url": "Modules/*"
        }
    ],

Then I did require all module in composer
composer require app/modulename
you need to modify composer.json in each module, and also you need to add version or remove minimum-stability in the root composer

It was better before. I don't like the current directory, even though it simulates the laravel folder structure.
At least yes, It should be ucfirst. It can't be assumed every module has a composer.json file.

Yes, the goal of the new structure is to simulate the standard Laravel file structure.
And yes, every module requires the composer.json file.
However, you can configure every behavior from the module configure file.

In my module composer.json I have the name spaces configured as so:
    "autoload": {
        "psr-4": {
            "Modules\\Driver\\": "",
            "Modules\\Driver\\App\\": "app/",
            "Modules\\Driver\\Database\\Factories\\": "database/factories/",
            "Modules\\Driver\\Database\\Seeders\\": "database/seeders/"
        }
    },

However, doing composer dump-autoload gives the following error:
Class Modules\Driver\Database\Factories\DriverFactory located in ./Modules/Driver/database/factories/DriverFactory.php does not comply with psr-4 autoloading standard. Skipping.
Class Modules\Driver\App\Models\Driver located in ./Modules/Driver/app/Models/Driver.php does not comply with psr-4 autoloading standard. Skipping.
Class Modules\Driver\App\Models\Vehicle located in ./Modules/Driver/app/Models/Vehicle.php does not comply with psr-4 autoloading standard. Skipping.
Class Modules\ExampleModule\App\Http\Controllers\ExampleModuleController located in ./Modules/ExampleModule/app/Http/Controllers/ExampleModuleController.php does not comply with psr-4 autoloading standard. Skipping.

How do I get the composer.json in the root to account for those in the modules? Should that be happening automatically for the namespacing to work?

I recommend going back to use App and Database for the namespaces and folder names. It's far simpler, it can all be done by updating your config file for new modules. No core changes are required.
Anyone that wants to use lowercase or uppercase can freely update their configuration. See https://github.com/nWidart/laravel-modules/issues/1719 for an example.

authors: aliakbarazizi dcblogdev geass94 n1crack solomon-ochepa unbolt

repo: nWidart/laravel-modules


text:
Docs

It seems the documentation is the same documentation from pingpong-labs, but i think is too difficult imagine that (for the new people arrive)

You're right, as it is explained in the first paragraph of the readme file present in this repository. 👍

authors: dr-martin nWidart


text:
dropEffectフィールドについて

test/files/jkf/same_move_minimal.jkf を調べているときに、 dropEffect フィールドがあることに気付きました。
$ jq '.moves[1].move.to' test/files/jkf/same_move_minimal.jkf
{
  "dropEffect": "move",
  "x": 7,
  "y": 6
}

このフィールドは同ファイルにしか存在せず、JSONの形式 (Version 1.0)でも言及されておりません。
このフィールドの存在は仕様に含まれますでしょうか。もし含まれましたら、フィールドの説明を仕様に追記いただけますと幸いです。もし含まれないようでしたら、JKFファイルを修正することになりそうです。
文脈： #51 によるJSON Schemaの作成中、 test/files/jkf/*.jkf との照らし合わせを行っています。

そのフィールドについて覚えがないのでなにかの間違いで混入したものと思われます。該当ファイルとスナップショットから消すのが妥当と思います。

license: mit

license_source: bigquery


text:
uncaught exception crashes node-red

My node-red exited with the following log...
Error: connect EHOSTUNREACH 192.168.1.35:8009
15 Nov 14:19:46 - [red] Uncaught Exception:
15 Nov 14:19:46 - Error: connect EHOSTUNREACH 192.168.1.35:8009
at Object._errnoException (util.js:1024:11)
at _exceptionWithHostPort (util.js:1046:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1182:14)
On the basis that 192.168.1.35 is my Google Home, I'm guessing it stems from this module.

Well that's not good. Currently this happens if the IP is wrong. I am
working on a fix.
On Fri, Nov 17, 2017, 14:39 Moonlit Knight notifications@github.com wrote:

My node-red exited with the following log...
Error: connect EHOSTUNREACH 192.168.1.35:8009
15 Nov 14:19:46 - [red] Uncaught Exception:
15 Nov 14:19:46 - Error: connect EHOSTUNREACH 192.168.1.35:8009
at Object._errnoException (util.js:1024:11)
at _exceptionWithHostPort (util.js:1046:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1182:14)
On the basis that 192.168.1.35 is my Google Home, I'm guessing it stems
from this module.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/nabbl/node-red-contrib-google-home-notify/issues/7,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AEdmg3U036jOhqHuAiCCZ5aAu7yzWG-Xks5s3YyGgaJpZM4QiDOg
.

Thanks @nabbl , looking forward to the fix! I have the same problem.

Should be fixed in the newest version (0.0.5)
There is now also an error message displayed on the node when the IP is unreachable.

authors: jenskastensson moonlitknight nabbl


text:
print table + colored output

without need for pterm, charm or other external module

[ ] add self username filed to config so that it can be highlighted in the table

[ ]  add self username filed to config so that it can be highlighted in green in the table
[ ]  add compatition filed to config so that it can be highlighted in red in  the table

wont implement for now

table and color added

repo: nairvarun/leetstalker


text:
Book Store: components

Here:

I setaped a new React application using Create React App
I created a directory for your reusable components: /components.
I Installed React Router V6
I added 2 routes in your application, each should render a page.
I created components inside of the /components directory:

Contains individual book state, as well as a button to delete the book
Contains a list to renders individual books
Contains a form to create new books

Now it looks like this:

4. Contains a navigation to link to the 2 routes you created

Hi @najibullahjafari,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
Invalid Code Review Request
You have submitted a project, that is invalid because linters are not properly set up for the project
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.

repo: najibullahjafari/bookstore


text:
Create README.md

adding readme

damm

repo: nakamep/myrepos


text:
Login , Signup & Forgot password page added

fixes #7
Added Signup , Login and fogot password pages as following.
kindly check and accept this PR .
Looking forward for your response.

https://github.com/user-attachments/assets/2e88daf2-5224-4f20-a269-d6cfcda4eea3

Also would like to mention all of the pages are responsive for smaller devices too


text:
About section does not list Jeremy Rand as a developer

<>

This is specific to the Android GUI, correct?

Unsure at this point as have removed earlier versions of electrum-nmc from machine at hand and am having issue running/installing 3.3.6 on Windows 10(#143).

This is apk specific, although probably shouldn't be.

authors: JeremyRand somewhatnmc

repo: namecoin/electrum-nmc


text:
Except build dir

test

👍


text:
onItemSelect only fires once per page refresh

When you select an item, then select another item, then select the original item. The original item will ignore the click event

Very strange. This does not seem to be the case with the demo. Can you demonstrate the bug?

Same problem here. Works only once per page refresh.
Has this been resolved in some way?

Has  anyone managed to fix this yet? I have the same problem and I can't find a solution.

I  figured a solution, but don't know why. If you install:
npm install --save-dev babel-plugin-transform-class-properties
and update the webpack to something like:
{
test: /.js$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
presets: ['react', 'es2015', 'react-hmre'],
plugins: ['transform-class-properties']
}
}
it runs correctly.

@jlubben thank you for finding this! :)
We do use class properties in the code for this module, mainly the bound functions like this:
class Timeline extends Component {
    boundFunction = () => {
      return this.instanceProperty;
    }
}

When the library is built, all of the code is converted (transpiled) to regular ES5 via babel and can be imported anywhere without complications.
However if you use a build tool that supports module (previously jsnext:main) in package.json, your build tool will instead take the untranspiled code. Rollup and Webpack 2+ both do this.
If then your babel configuration is not set up like the library's, you may run into problems.
I personally use these presets:
{
   "presets": ["es2015", "stage-0", "react"],
}

Adding stage-0 (babel-preset-stage-0) automatically adds transform-class-properties and some other useful features. If that seems a bit too experimental for you, then just stage-2 is enough.
I added a note for this into the README
Closing the issue now. Feel free to reopen in case of problems!

authors: Sitethief jlubben jmerriweather mariusandra momegas

repo: namespace-ee/react-calendar-timeline


text:
Problem with Automatic1111 1.6

In 1.6 version of automatic1111 web ui the thumbnail are broken and not visible, the image are not written in the data folder of extension, pagination not work anymore

thanks for the info, i will check it out.

It may be related to this piece:
// prompt_history.js line 99
function promptHistoryAutoRefresh() {
    // hijack ui
    const btn_c = gradioApp().querySelector('#txt2img_style_create')

Since A1111 1.6 this button doesn't exist anymore, btn_c is null and the rest of the function will fail.
(Unless you use some restore old ui extensions, don't know the name but they do exist)
Proposed fix:
function promptHistoryAutoRefresh() {
    // hijack ui
    const btn_c = gradioApp().querySelector('#txt2img_styles_edit_button');

thanks @zethriller, i will check it as soon as i have some time.

fixed in https://github.com/namkazt/sd-webui-prompt-history/commit/53cb5422a1e6c025f78e64fbd3f4ad02c5c0c2cf

aw sorry, it only fix the display problem, the save history still has problem, i will debug somemore

I have the feeling it starts locking itself up when a page is added (20 items per page ?) - until you refresh the webui (F5 in browser, no need for a full relaunch)
This is still an unreliable lead, i can't reproduce it with 21 batches of 1x1 and the few debugs outputs i've added give nothing.
However with somewhere about 50 generations without switching to the prompt history tab, it starts locking up. (!!)
I hope for the sake of us all that the trigger is lower than that, i can't tell exactly how high it is.
Then those pop up in the console:
Prompt History - prev_func(): global_state.config_changed: True
Prompt History - next_func(): global_state.config_changed: True

And it'll stay like that until you refresh the webui.
If this stays on true, prev/next and possibly the other buttons become unusable.
Ref:
# prompt_history_script.py:179
def prev_func():
  global current_page
  print("Prompt History - prev_func(): global_state.config_changed: " + str(global_state.config_changed))
  if global_state.config_changed: return

Data is recorded, i'm monitoring the data\ folder, preview images keep coming in. data.json file looks ok as well.
I'm not fluent at all with python so i'm a bit nervous about going deeper in code than a few print(), sorry lol
Hope this helps, though.

that weird, i already test pagination few times but with smaller page size ( around 3 )

Latest revision (https://github.com/namkazt/sd-webui-prompt-history/commit/3fb37abb778df779113e8977b4fe5c735e3b1d84) has fixed both saving to history and paging.
I'm way above a single page on today's generations and i can tell it works. 👍

nice, close now, feel free to open new issue if you have any problem.

Hello. I'm sorry, but it still doesn't work for me: previews don't get stored in /data folder. Pagination works ok.
I reinstalled stable-diffusion-webui and sd-webui-prompt-history but still no previews. I use Windows 11.
Thanks.
version: v1.6.0-2-g4afaaf8a  •  python: 3.10.6  •  torch: 2.0.1+cu118  •  xformers: 0.0.20  •  gradio: 3.41.2

Hello. I'm sorry, but it still doesn't work for me: previews don't get stored in /data folder. Pagination works ok.
I reinstalled stable-diffusion-webui and sd-webui-prompt-history but still no previews. I use Windows 11.
Thanks.
version: v1.6.0-2-g4afaaf8a  •  python: 3.10.6  •  torch: 2.0.1+cu118  •  xformers: 0.0.20  •  gradio: 3.41.2

Can you try to open settings page and set thumbnail to NOT none

authors: abellos namkazt terrrst zethriller

repo: namkazt/sd-webui-prompt-history


text:
Update installation instructions

The github repo address was pointing to a fork of the original ruby gem, instead of the Crystal port. Which was somewhat confusing for this Crystal noob, as it resulted in:
$ shards install
Resolving dependencies
…
Fetching https://github.com/nanobowers/optimist.git
Shard "optimist" version (2.1.2) doesn't have a shard.yml file
Installing optimist (2.1.2)
Unhandled exception: Error creating symlink: '..' -> '/path_to_app/lib/optimist/lib': File exists (File::AlreadyExistsError)
  from /usr/local/Cellar/crystal/1.3.2/bin/shards in 'raise<File::Error+>:NoReturn'
  from /usr/local/Cellar/crystal/1.3.2/bin/shards in 'File::symlink<String, String>:Nil'
  from /usr/local/Cellar/crystal/1.3.2/bin/shards in 'Shards::Package#install:Nil'
  from /usr/local/Cellar/crystal/1.3.2/bin/shards in 'Shards::Commands::Install@Shards::Command::run<String>:Nil'
  from /usr/local/Cellar/crystal/1.3.2/bin/shards in '~procProc(Array(String), Array(String), Nil)@src/cli.cr:56'
  from /usr/local/Cellar/crystal/1.3.2/bin/shards in 'OptionParser#parse<Array(String)>:Nil'
  from /usr/local/Cellar/crystal/1.3.2/bin/shards in '__crystal_main'
  from /usr/local/Cellar/crystal/1.3.2/bin/shards in 'main'

Thanks @jamesbebbington !

authors: jamesbebbington nanobowers


text:
Work CI-CD

Description

Add and update github actions.

Motivation and Context
How Has This Been Tested?

Screenshots
Types of changes

[ ] Improvement (non-breaking change that improves a feature, code or algorithm)
[ ] Bug fix (non-breaking change which fixes an issue with code or algorithm)
[ ] New feature (non-breaking change which adds functionality to code)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] Config and build (change in the configuration and build system, has no impact on code or features)
[ ] Dependencies (update dependencies and changes associated, has no impact on code or features)
[ ] Unit Tests (add new Unit Test(s) or improved existing one(s), has no impact on code or features)
[ ] Documentation (changes or updates in the documentation, has no impact on code or features)

Checklist:

[ ] My code follows the code style of this project (only if there are changes in source code).
[ ] My changes require an update to the documentation (there are changes that require the docs website to be updated).
[ ] I have updated the documentation accordingly (the changes require an update on the docs in this repo).
[ ] I have read the CONTRIBUTING document.
[ ] I have tested everything locally and all new and existing tests passed (only if there are changes in source code).
[ ] I have added new tests to cover my changes.

@nfbot updatedependencies


text:
Add edit capability

Add the ability to edit calendar entries.
There is now an edit toggle:

If you toggle it on, the distance/titles/descriptions of events turn into a textarea that can be edited:

The user gets access to the title/desc template as well as the distance
Editing is integrated with the "undo" functionality.
This pr is patched on top of https://github.com/nanreh/calendar-hack/pull/49. Once that's merged, this will be easier to review :)

Thanks for this--it's a great improvement. Some feedback:
Minor issue with formatting. Looks like some line breaks aren't rendering. Example:

I noticed it's easy to get into a weird state by checking Edit and then switching between Mi/Km. I think it would be fine to disable the Mi/Km options (and probably the others) when Edit is checked. Edit feels like an important state for the application to be in that there should be just one way to get out of. Will probably have to make clear in the UI that we are Editing.
I think there are a few issues with editing distances. Here's one: some plans have multiple distances on a single line of text:

Also (very minor issue) with the number text field for editing distance: it can go negative:

I wonder if, for this first iteration on editing, we should maybe have just the description as editable and remove separate distance number field. This helps to solve another issue I noticed: distance number field and the numbers shown in the description get out of sync as soon as the user edits one of them. I think that's a bit jarring. Down the road we could offer more structured editing of distances in a way that's friendlier than the embedded {values}.
I haven't tested thoroughly but overall looks pretty solid. LMK what you think and thanks again for this work!

authors: leeweisberger nanreh

repo: nanreh/calendar-hack


text:
いいところ診断の結果に優しさを追加したい

以下の結果を追加したい
'{userName}のいいところは優しさです。あなたの優しい雰囲気や立ち振る舞いに多くの人が癒やされています。'

いいね！
これから対応していきたいと思います

01d833478b21941adb4118f3a3f80f69809ed8a0 で対応しました


text:
Entity History

Issue 85

https://github.com/naomijub/wooridb/issues/85

repo: naomijub/wooridb


text:
Operational validation method(s)? #hackathon2016

I was wondering if it may make sense to have some operational validation capabilities into NAPALM, like having the possibility to run device.validate("bgp") and check if everything looks as expected.
If it's cool, what do you think may be something good to validate? BGP peers, reachability, LLDP peers..?

@GGabriele I think it could be interesting to make this more general. By this I mean have a 'command' you can run and a ruleset you can run the output of the command against to say whether it validates or not.
I did this where it was validating the running-config and the ruleset had a pretty simple engine that stated whether something had to be in the config or could not be in the config.

Could you show an example on how it would work? I am not sure if I understand what you mean. Just fake everything, pretend the code is there, and show how it would work on the console ; )

@dbarrosop my original idea was to support the validation of a set of features. Let's imagine you want to validate BGP peers, validate() would search for a source of truth (YAML file?), load the expected BGP peers status and check if there is a match with get_bgp_neighbors result.
But I like what @ktbyers proposed and I'm trying to think about it.

Just thinking out loud here...
validate_getters = ['get_config']                  # will validate what is returned by get_ operation
validate_files = {
'get_config': 'get_config_validation.yml'
}
example rules in .yml file
config_requires:           # items the config must have
- enable secret *
- service password-encryption
interface_set:           # define sets of interfaces for what they require / are missing
config_missing:          # items the config can't have

enable password *

You could expand this to be any NAPALM getter method (not just the config)
.validate()                  # either pass or fail and shows you in clear way everything that fails and why they fail.

Basically, would be the equivalent of unit tests for configuration and the values returned by NAPALM getters.

Exactly. I was first thinking it as more related to getters, but it will definitely be useful for configuration too.
Thanks for your hints @ktbyers !

Ok, makes sense. Cool thing about that is that if it's generic enough it can either be part of napalm-base or even live completely outside of napalm. Anyway, feel free to mock it and let's see how it ends up looking : )

So far I have this for getters (tested with NXOS):
Sample validate.yml file:
---

get_interfaces:
  Ethernet2/5:
    is_enabled: true
    is_up: false

  loopback103:
    is_enabled: false
    is_up: false

  Vlan100:
    is_enabled: false
    is_up: false

get_facts:
  os_version: 7.0(3)I2(2d)
  interface_list:
    - Vlan5
    - Vlan100
  hostname: n9k2

get_lldp_neighbors:
  mgmt0:
    - hostname: PERIMETER
      port: Fa1/0/11

Sample CLI workflow:
>>>import json
>>>from napalm import get_network_driver
>>>driver = get_network_driver('nxos')
>>>device = driver('nxos', 'ntc', 'ntc123')
>>>device.open()
>>>
>>>getters = ['get_interfaces', 'get_facts', 'get_lldp_neighbors']
>>>validation = device.validate(getters=getters)
>>>
>>>print json.dumps(validation, indent=4)

Sample results:
{
    "get_interfaces": {
        "Vlan100": [
            "Expected 'is_enabled: False', found 'is_enabled: True' instead"
        ],
        "loopback103": [
            "Expected 'is_enabled: False', found 'is_enabled: True' instead",
            "Expected 'is_up: False', found 'is_up: True' instead"
        ]
    },
    "get_lldp_neighbors": {
        "mgmt0": [
            "Expected but not found: {'hostname': 'PERIMETER', 'port': 'Fa1/0/11'}"
        ]
    },
    "get_facts": {
        "os_version": [
            "Expected 'os_version: 7.0(3)I2(2d)', found 'os_version: 7.0(3)I4(1)' instead"
        ],
        "interface_list": [
            "Expected but not found: Vlan5"
        ]
    }
}

It will print Expected but not found: X if the dict value is a list, while it will print something like Expected 'X', found 'Y' instead if the dict value is a dict/unicode/int.

That's great, note that the new testing framework has a method to compare objects. We could probably unify those. Let's discuss it when you send the PR

That's cool, I'm working on the config part now. It's really good that we're going to have get_config on all drivers as it will be really helpful for this.

authors: GGabriele dbarrosop ktbyers

repo: napalm-automation/napalm-base


text:
Move plugin errors entry to notification manager

🚀 Feature
The plugins dialog could be simplified if the plugin errors were displayed as part of the notification manager?

Motivation
Simplify the UI, plugins menu and dialogs.

agreed.  The main thing that we would either lose (or need to port) is the select box that let's you review/select all of the tracebacks collected by a specific plugin

(i.e. the notification manager still doesn't really have a "history")

Indeed, we would need to do some work and maybe add "sections" to the notification manager so that plugins errors could be accessed on demand more easily.

The main thing that we would either lose (or need to port)

Port sounds good, might need to think about what history looks like on the notification manager.

Overview of design need

In a sentence or two, describe the problem to be solved for users
Consider if / how to make plugin errors more consistent in experience with other (napari core) errors.

What level of design is needed? (Choose all that apply)
This section may be updated by the designer / UX researcher working on this issue

[ ] User experience research:  high-level recommendation/exploration of user needs, design heuristics, and / or best practices to inform a design experience
(Use this option when you feel there’s a challenge to be solved, but you’re curious about what the experience should be — may involve research studies to understand challenges/opportunities for design)
[X] information flow / conceptual: organizing and structuring of information flow and content, including layout on screen or across multiple steps
[X] Visual: creating mockups, icons, etc
(If choosing this level alone, it means that the content to be mocked up and its organization is already known and specified)

Is design a blocker?

[ ] Yes: engineering cannot proceed without a design first
[X] No: engineering can create a first version, and design can come in later to iterate and refine

If selecting Yes, how much design input is needed to unblock engineering? For example, is a full, final visual design needed, or just a recommendation of which conceptual direction to go?
T-shirt size

[ ] ●○○○○ XS: able to be done in a typical workday or two
[ ] ●●○○○ S: able to do within one sprint, if also working on other things in the sprint
[X] ●●●○○ M: able to do within one sprint, if it is the sole focus
[ ] ●●●●○ L: will likely take more than one sprint to complete, but less than two
[ ] ●●●●● XL: a very large experience to be determined or overhauled, will need to be broken down further

authors: goanpeca liaprins-czi tlambert03

repo: napari/napari


text:
viewer.camera.zoom assignment is ignored after viewer.camera.center assignment

🐛 Bug

To Reproduce

Execute the script below:

import napari
import numpy as np
from qtpy.QtCore import Qt
from qtpy.QtWidgets import QLabel, QSlider

data = np.zeros((10, 500, 500), dtype=bool)

center = (5, 100, 250)
data[center[0], center[1]-5:center[1]+6,  center[2]-5:center[2]+6] = True

viewer = napari.Viewer()
viewer.add_image(data)

def update_data():
    data[:,:,:] = False
    new_z = np.random.randint(2, 8)
    new_x = np.random.randint(50, 450)
    new_y = np.random.randint(50, 450)
    center = (new_z, new_x, new_y)
    data[center[0], center[1]-5:center[1]+6,  center[2]-5:center[2]+6] = True
    viewer.dims.current_step = (new_z,) + viewer.dims.current_step[1:]
    viewer.camera.center = center
    viewer.camera.zoom = 10

slider = QSlider()
slider.setMaximum(100)
slider.setOrientation(Qt.Horizontal)
slider.valueChanged.connect(lambda:update_data())
viewer.window.add_dock_widget([QLabel('change data'), slider], area='right')
napari.run()

Drag the "change data" slider around a little bit
Notice that zoom level alternates between high and low when slider is moved
Open the console within the viewer
Now, complete the following loop a few times

Click the "change data" slider and press the right arrow key to increment its value
Run viewer.camera within the console

Notice that viewer.camera.zoom is only correctly set to 10 every other time that the slider is incremented

Expected behavior

When slider is dragged, viewer stays centered and zoomed on square
viewer.camera.zoom is set to 10 every time the slider is incremented

Environment
napari: 0.4.15
Platform: Linux-5.17.5-arch1-2-x86_64-with-glibc2.35
System: Arch Linux
Python: 3.10.4 (main, Mar 23 2022, 23:05:40) [GCC 11.2.0]
Qt: 5.15.2
PyQt5: 5.15.6
NumPy: 1.22.3
SciPy: 1.8.0
Dask: 2022.02.0
VisPy: 0.9.6

OpenGL:
- GL version: 4.6.0 NVIDIA 510.68.02
- MAX_TEXTURE_SIZE: 32768

Screens:
- screen 1: resolution 3840x2160, scale 1.0

Plugins:
- console: 0.0.4
- napari-ome-zarr: 0.4.0
- scikit-image: 0.4.15
- svg: 0.1.6

Additional context
I think this is some kind of weird event loop interaction? I've been unable to reproduce it without using the docked slider.

(Tagging @tlambert03 on this one, as my impression is that he's the dock widget expert. Not urgent, but would appreciate any thoughts!)

I added a print(viewer.camera.zoom) to the function and it always returns 10 for me.
napari: 0.5.4rc4.dev12+g22a5018f9
Platform: macOS-14.5-arm64-arm-64bit
System: MacOS 14.5
Python: 3.12.6 | packaged by conda-forge | (main, Sep 11 2024, 04:55:15) [Clang 17.0.6 ]
Qt: 6.7.1
PyQt6:
NumPy: 2.0.2
SciPy: 1.14.1
Dask: 2024.9.0
VisPy: 0.14.3.dev34
magicgui: 0.9.1
superqt: 0.6.7
in-n-out: 0.2.1
app-model: 0.3.0
psygnal: 0.11.1
npe2: 0.7.7
pydantic: 2.9.2

OpenGL:
- GL version: 2.1 Metal - 88.1
- MAX_TEXTURE_SIZE: 16384
- GL_MAX_3D_TEXTURE_SIZE: 2048

Screens:
- screen 1: resolution 1680x1050, scale 2.0

Optional:
- numba: 0.60.0
- triangle not installed
- napari-plugin-manager: 0.1.1.dev21+g1f2393f

Settings path:
- /Users/piotrsobolewski/Library/Application Support/napari/napari-dev_a1eb8b76ba95fa16ad06e26097b46b8455dfbf0b/settings.yaml

authors: Borchardt borchardt psobolewskiPhD


text:
Expose canvas.background_color_override in the GUI

🧰 Task
The canvas color plays a crucial role in the way additive and minimum blending modes work:
Additive blending of the bottom-most layer only works with a black canvas, because you can't add to white aka (1, 1, 1).
Minimum blending of the bottom-most layer only works with a white canvas, because black (0, 0, 0) will always be the minimum.
At present the canvas color is set by the theme. While there can be aesthetic reasons to prefer blending and viewer Theme to match, this is not intuitive and not ideal.
https://github.com/napari/napari/pull/2270 provided a way to override the canvas color provided by the theme. Also, it's depreciated, see: https://github.com/napari/napari/issues/3970
Still, because of the canvas-blending interaction, there should be a way to control this override from the GUI, for example in the Settings, where one sets the theme preference.
Additionally, it could be accessible by right-click on the canvas.
Initially, it may suffice to provide a toggle between white and black, but someone may prefer a different color for cases where they are not using additive or minimum blending.

What is the error with solution from #2270? I use it in PartSeg, and on Linux it works. So I worry about what could happen to prevent this from working on macOS.

It gives the FutureWarning and nothing happens with the canvas on my end:

Ah. The welcome screen inherits color from the theme, not from canvas :P

authors: Czaki psobolewskiPhD


text:
Stop slider animation on display and dimension changes

Description
The original bug description covered the case when a single 3D image layer is played, removed, and then readded - in which case it was still playing.
This PR fixes that issue by stopping the playback animation whenever the number of sliders changes. When a 3D image is playing and is then removed Dims.ndim goes from 3 to 2.
I also handled the similar case when the display goes from 2 to 3, in which case we should also stop now.
It's possible there are some more cases I haven't thought of, or there might be a good general place to put stop that would catch everything, but I couldn't think of one. Open to ideas and other test cases!
Type of change

[x] Bug-fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

References
Closes #3998.
How has this been tested?

[x] added new tests to reproduce the original bug and a variant
[ ] all tests pass with my change
[x] I check if my changes works with both PySide and PyQt backends
as there are small differences between the two Qt bindings.

Final checklist:

[ ] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

@tlambert03 : I assigned you to review only because I saw your name from git blame around my changes - feel free to unassign if you're unfamiliar with this code.

oh yeah... this pile of garbage is mine :joy:

The test failures (ubuntu-latest 3.9 pyqt5 and macos-latest 3.9 pyqt5) are new and inexplicable (at least to me...) - any ideas?

The test failures (ubuntu-latest 3.9 pyqt5 and macos-latest 3.9 pyqt5) are new and inexplicable (at least to me...) - any ideas?

I changed the animation worker thread to connect from the finished signal to the play_stopped signal rather than the play_stopped.emit method. I think that's a potential fix because I believe Qt does a few more checks when connecting signals->slots or signals->signals rather than signals->methods/functions. But I don't know enough about the details about Qt, qtpy, pyqt, and pyside. Any insight would be appreciated.

I marked this as a draft because I don't exactly understand my fix yet and don't want to add a flaky test to napari. When I do understand it, I'll unmark it as a draft and will likely merge it soon after.

After looking at this fresh, I am happy enough with this.
I understand a little more about what's going on under the hood of pyqt5, when we connect to a Python callable instead of a signal. In particular, when the callable is recognizable as a signal, the receiver is the QObject that owns that signal.
When we previously connected to play_stopped.emit, the instance that emit is bound to is of the type pyqtSignal, which isn't recognizable as a QObject, at which point pyqt has to create a slot proxy and moves it to the thread of the receiver.
My understanding ends when trying work our what receiver will be our case. Is it just the instance of pyqtSignal? In that case maybe we truly confused pyqt's guessing logic and made it behave really strangely? Note that pyside has a notion of a global receiver, which may explain why it avoided similar issues.

@tlambert03 : as you approved this already and nothing really changed, I'll likely merge this in 24 hours.
Lessons learned from this PR. Avoid connecting to plain Python callables when possible. And really avoid connecting to callables bound to instances of pyqtSignal!

Lessons learned from this PR. Avoid connecting to plain Python callables when possible. And really avoid connecting to callables bound to instances of pyqtSignal!

works for me!  given the number of actively burning fires, anything that works is 100% welcome!  Merge any time!


text:
Script to auto-apply updates pulled down with factorio-updater

Just sharing this script which I knocked together to streamline my updating process for my server. I have this script symlinked into each factorio install folder, and a simple ./update in that folder will pull down and apply the latest version.
#!/bin/sh

FACTORIO_BINARY=./bin/x64/factorio
FACTORIO_PACKAGE=core-linux_headless64
FACTORIO_UPDATEDIR=./updater-temp

key="$1"
case $key in
        -s|stable|--stable)
        EXPERIMENTAL=
        echo "Set to STABLE release mode!"
        ;;
        -e|-x|experimental|--experimental)
        EXPERIMENTAL=-x
        echo "Set to EXPERIMENTAL release mode!"
        ;;
        *)
        EXPERIMENTAL=
        echo "Defaulting to STABLE release mode. To set EXPERIMENTAL release mode, please use '$0 experimental'"
        ;;
esac

mkdir -p $FACTORIO_UPDATEDIR
FACTORIO_VERSION=`$FACTORIO_BINARY --version |awk 'NR==1{print $2}'`
./update_factorio.py -p $FACTORIO_PACKAGE -f $FACTORIO_VERSION $EXPERIMENTAL -O $FACTORIO_UPDATEDIR

if compgen -G "$FACTORIO_UPDATEDIR/*.zip" >/dev/null; then
for f in `ls -tr $FACTORIO_UPDATEDIR/*.zip`
        do
                $FACTORIO_BINARY --apply-update $f && rm $f
        done
fi

FACTORIO_VERSION=`$FACTORIO_BINARY --version |awk 'NR==1{print $2}'`
echo ""
echo "***** ***** ***** ***** ***** ***** ***** ***** *****"
echo "Factorio version is now: $FACTORIO_VERSION"

That's very cool, particularly with the auto-detection of the current Factorio version. You could perhaps also use the presence of a file (perhaps named EXPERIMENTAL?) to turn experimental updates on/off automatically without having to pass an argument.

I assume I can use this in LGSM (linux game-server-manager) ?

authors: jocker-il narc0tiq yukihyou