temporalio / temporalio/sdk-rust

[Feature Request] Friendly connection error messages

Open
#541 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
523
Forks
161
Avg merge
1d 7h
Merged PRs (30d)
67

Description

Errors I currently get from a Worker, and proposed new messages, to go along with @cretz's new error codes:

unknown domain
worker:start: TransportError: tonic::transport::Error(Transport, hyper::Error(Connect, ConnectError("dns error", Custom { kind: Uncategorized, error: "failed to lookup address information: nodename nor servname provided, or not known" })))

Unable to connect to the Server connection URL you provided, server.foo.com:7233, since according to DNS, the domain server.foo.com does not exist. Perhaps there's a typo, or you haven't yet set it up with your domain registrar.

If domain is *.tmprl.cloud, then:

Unable to connect to the Server connection URL you provided, loren.temporal-dev.tmprl.cloud:7233, since the loren.temporal-dev namespace does not exist. To get the correct URL, visit cloud.temporal.io/namespaces, click your namespace, and copy the gRPC address from the namespace detail page.

valid domain, no frontend running on the port
worker:dev: TransportError: tonic::transport::Error(Transport, hyper::Error(Connect, ConnectError("tcp connect error", Os { code: 61, kind: ConnectionRefused, message: "Connection refused" })))
worker:dev:     at Function.connect (/Users/me/gh/samples-typescript/food-delivery/node_modules/@temporalio/worker/src/connection.ts:51:15)

Unable to connect to the Server connection URL you provided, server.foo.com:7233, since there is no Temporal Server accepting connections on port 7233. Verify the domain is correct. If it is, ensure that the Server is running on 7233.

wrong cert
worker:start: TransportError: Failed to call GetSystemInfo: status: Unknown, message: "transport error", details: [], metadata: MetadataMap { headers: {} }
worker:start:     at Function.connect (/Users/me/gh/samples-typescript/food-delivery/node_modules/@temporalio/worker/lib/connection.js:55:23)

The connection [key/cert] you provided failed verification with the Server. Make sure it's the correct one, compatible with the CA certificate that server.foo.com has. For more info, see t.mp/T111

If domain is *.tmprl.cloud, then:

The connection [key/cert] you provided failed verification with Temporal Cloud. Make sure it's the correct one, compatible with the CA certificate that is uploaded to cloud.temporal.io/namespaces/loren.a2dd6. For more info, see t.mp/T222

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Worker connection handling and the Function.connect entry point shown in samples-typescript/food-delivery/node_modules/@temporalio/worker/src/connection.ts. Trace how DNS failures, connection refusals, and certificate verification errors are surfaced, then verify that each case produces a friendly message containing the relevant connection details and guidance.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.