Tencent/WeKnora · error

WeKnoraCloud apiKey is required

Error message

WeKnoraCloud apiKey is required

What it means

Constructor validation in NewWeKnoraCloudSignedDocumentReader: the apiKey argument is empty, so signed requests to the WeKnoraCloud doc API could never be authenticated. The reader refuses construction; raised from ResolveDocumentReader/NewReader whenever a WeKnoraCloud datasource is configured without its API key.

Source

Thrown at internal/infrastructure/docparser/weknoracloud_http_reader.go:41

	weKnoraCloudReaderBaseURL = "https://weknora.weixin.qq.com/api/v1/doc"
)

// WeKnoraCloudSignedDocumentReader implements the docreader HTTP protocol with WeKnoraCloud signing.
type WeKnoraCloudSignedDocumentReader struct {
	appID               string
	apiKey              string
	client              *http.Client
	initialPollInterval time.Duration
	maxPollInterval     time.Duration
	pollTimeout         time.Duration
}

func NewWeKnoraCloudSignedDocumentReader(appID, apiKey string) (*WeKnoraCloudSignedDocumentReader, error) {
	if appID == "" {
		return nil, fmt.Errorf("WeKnoraCloud appID is required")
	}
	if apiKey == "" {
		return nil, fmt.Errorf("WeKnoraCloud apiKey is required")
	}
	clientCfg := secutils.DefaultSSRFSafeHTTPClientConfig()
	clientCfg.Timeout = 500 * time.Minute
	return &WeKnoraCloudSignedDocumentReader{
		appID:               appID,
		apiKey:              apiKey,
		initialPollInterval: 500 * time.Millisecond,
		maxPollInterval:     10 * time.Second,
		pollTimeout:         20 * time.Minute,
		client:              secutils.NewSSRFSafeHTTPClient(clientCfg),
	}, nil
}

func (p *WeKnoraCloudSignedDocumentReader) Reconnect(addr string) error {
	return nil
}

func (p *WeKnoraCloudSignedDocumentReader) IsConnected() bool { return true }

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Provide the WeKnoraCloud apiKey from configuration/secret store
  2. Check for blank env values or trimmed secrets
  3. Validate credentials before calling the constructor
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/infrastructure/docparser/weknoracloud_http_reader.go:41 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02). Data as JSON: /api/errors/c5c1647906663969. Report an issue: GitHub.