tailscale/tailscale · error

acme.Register: %w

Error message

acme.Register: %w

What it means

GetReg reported no account, so a new ACME account was registered (or re-fetched if it already existed) and that step failed. It means the CA rejected registration or the follow-up lookup: network failure, CA outage, rate limiting, or a rejected key.

Source

Thrown at feature/acme/cert.go:465

}

// ensureAccount returns a valid ACME account, registering one if
// needed. Locked so two first-time issuances don't both create one.
func (e *extension) ensureAccount(ctx context.Context, ac *xacme.Client, logf logger.Logf, traceACME func(any)) (*xacme.Account, error) {
	e.accountMu.Lock()
	defer e.accountMu.Unlock()
	a, err := ac.GetReg(ctx, "" /* pre-RFC param */)
	switch {
	case err == nil:
		logf("already had ACME account.")
		return a, nil
	case err == xacme.ErrNoAccount:
		a, err = ac.Register(ctx, new(xacme.Account), xacme.AcceptTOS)
		if err == xacme.ErrAccountAlreadyExists {
			a, err = ac.GetReg(ctx, "" /* pre-RFC param */)
		}
		if err != nil {
			return nil, fmt.Errorf("acme.Register: %w", err)
		}
		logf("registered ACME account.")
		traceACME(a)
		return a, nil
	default:
		return nil, fmt.Errorf("acme.GetReg: %w", err)
	}
}

type acmeCertIssueArgs struct {
	cs            certStore           // certificate and ACME account storage
	logf          logger.Logf         // logs ACME progress and failures
	traceACME     func(any)           // optional hook for logging ACME messages
	domain        string              // certificate domain being issued
	opts          []xacme.OrderOption // ACME order options
	challengeType acmeChallengeType   // challenge type to fulfill
}

View on GitHub (pinned to 6e0912f979)

Solutions

  1. Check outbound HTTPS connectivity to the ACME directory URL.
  2. Retry later if the CA reports rate limiting or an outage.
  3. Regenerate the ACME account key if the CA rejects it.
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at feature/acme/cert.go:465 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of tailscale/tailscale@6e0912f979 (2026-08-18). Data as JSON: /api/errors/5ac4a1ef3b096c69. Report an issue: GitHub.