chenhg5/cc-connect · error

%s: CDN http %d: %s

Error message

%s: CDN http %d: %s

What it means

The Weixin CDN returned a non-200 HTTP status for the media download in fetchCdnBytes (e.g. expired encrypted_query_param, wrong CDN region, or object removed). The truncated body logged in the message usually carries the server's error detail.

Source

Thrown at platform/weixin/cdn.go:146

	}
	req, err := http.NewRequestWithContext(ctx, http.MethodGet, fullURL, nil)
	if err != nil {
		return nil, fmt.Errorf("%s: new request: %w", label, err)
	}
	resp, err := client.Do(req)
	if err != nil {
		return nil, fmt.Errorf("%s: get: %w", label, err)
	}
	defer resp.Body.Close()
	body, err := io.ReadAll(io.LimitReader(resp.Body, maxWeixinMediaBytes+1))
	if err != nil {
		return nil, fmt.Errorf("%s: read: %w", label, err)
	}
	if len(body) > maxWeixinMediaBytes {
		return nil, fmt.Errorf("%s: CDN body exceeds %d bytes", label, maxWeixinMediaBytes)
	}
	if resp.StatusCode != http.StatusOK {
		return nil, fmt.Errorf("%s: CDN http %d: %s", label, resp.StatusCode, truncateForLog(body, 256))
	}
	return body, nil
}

func downloadAndDecryptCDN(ctx context.Context, client *http.Client, cdnBase, encParam, aesKeyBase64, label string) ([]byte, error) {
	key, err := parseAesKey(aesKeyBase64, label)
	if err != nil {
		return nil, err
	}
	u := buildCdnDownloadURL(encParam, cdnBase)
	enc, err := fetchCdnBytes(ctx, client, u, label)
	if err != nil {
		return nil, err
	}
	plain, err := decryptAESECB(enc, key)
	if err != nil {
		return nil, fmt.Errorf("%s: decrypt: %w", label, err)
	}

View on GitHub (pinned to 4000b2338a)

Solutions

  1. Retry after a short delay; expired CDN params sometimes recover on refresh
  2. If 403/404 persists, re-request a fresh download param from Weixin or skip the media
  3. Inspect the logged body snippet for the CDN's specific error code
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at platform/weixin/cdn.go:146 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/7a012f1866ff4780. Report an issue: GitHub.