chenhg5/cc-connect · error
%s: fetch tenant access token returned empty token
Error message
%s: fetch tenant access token returned empty token
What it means
fetchFreshTenantAccessToken: the self-built-app token endpoint call succeeded but returned success without issuing a token (empty token) — an app-configuration problem rather than a transport failure.
Source
Thrown at platform/feishu/feishu.go:4115
}
slog.Warn(p.tag()+": retrying request with fresh tenant access token", "operation", operation)
return fn(p.replayAPIClient(), larkcore.WithTenantAccessToken(freshToken))
}
func (p *Platform) fetchFreshTenantAccessToken(ctx context.Context) (string, error) {
resp, err := p.replayAPIClient().GetTenantAccessTokenBySelfBuiltApp(ctx, &larkcore.SelfBuiltTenantAccessTokenReq{
AppID: p.appID,
AppSecret: p.appSecret,
})
if err != nil {
return "", fmt.Errorf("%s: fetch tenant access token: %w", p.tag(), err)
}
if !resp.Success() {
return "", fmt.Errorf("%s: fetch tenant access token code=%d msg=%s", p.tag(), resp.Code, resp.Msg)
}
if strings.TrimSpace(resp.TenantAccessToken) == "" {
return "", fmt.Errorf("%s: fetch tenant access token returned empty token", p.tag())
}
return resp.TenantAccessToken, nil
}
func (p *Platform) replayAPIClient() *lark.Client {
p.replayClientMu.Lock()
defer p.replayClientMu.Unlock()
if p.replayClient == nil {
p.replayClient = newFeishuReplayClient(p.appID, p.appSecret, p.domain)
}
return p.replayClient
}
func newFeishuReplayClient(appID, appSecret, domain string) *lark.Client {
var opts []lark.ClientOptionFunc
opts = append(opts, lark.WithEnableTokenCache(false))
if domain != "" && domain != lark.FeishuBaseUrl {
opts = append(opts, lark.WithOpenBaseUrl(domain))View on GitHub (pinned to 4000b2338a)
Solutions
- Verify the app is enabled and the same app_id/app_secret pair is used
- Re-check app permissions/scopes in the Feishu developer console
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at platform/feishu/feishu.go:4115 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of chenhg5/cc-connect@4000b2338a (2026-09-06).
Data as JSON: /api/errors/ff92feea56cd61f3.
Report an issue: GitHub.