chenhg5/cc-connect · error
weixin: not a weixin session key
Error message
weixin: not a weixin session key
What it means
ReconstructReplyCtx (used by cron/proactive sends) received a session key that does not start with the weixin sessionKeyPrefix, so it cannot belong to this platform — the key was produced by another platform or is malformed.
Source
Thrown at platform/weixin/weixin.go:909
return []string{s}
}
var out []string
runes := []rune(s)
for len(runes) > 0 {
n := maxRunes
if len(runes) < n {
n = len(runes)
}
out = append(out, string(runes[:n]))
runes = runes[n:]
}
return out
}
// ReconstructReplyCtx implements core.ReplyContextReconstructor for cron / proactive sends.
func (p *Platform) ReconstructReplyCtx(sessionKey string) (any, error) {
if !strings.HasPrefix(sessionKey, sessionKeyPrefix) {
return nil, fmt.Errorf("weixin: not a weixin session key")
}
peer := strings.TrimPrefix(sessionKey, sessionKeyPrefix)
tok := p.getContextToken(peer)
if tok == "" {
return nil, fmt.Errorf("weixin: no stored context_token for %q (user must message the bot first)", peer)
}
return &replyContext{peerUserID: peer, contextToken: tok}, nil
}
// FormattingInstructions implements core.FormattingInstructionProvider.
func (p *Platform) FormattingInstructions() string {
return "Replies are delivered as plain text to Weixin. Avoid markdown tables; use short paragraphs."
}
var (
_ core.Platform = (*Platform)(nil)
_ core.ReplyContextReconstructor = (*Platform)(nil)
_ core.FormattingInstructionProvider = (*Platform)(nil)View on GitHub (pinned to 4000b2338a)
Solutions
- Route the reconstruction request to the platform that owns the session key (check the prefix) before calling ReconstructReplyCtx
- Verify cron/timer jobs store the full platform-prefixed session key when created
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at platform/weixin/weixin.go:909 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/025d2d0205c55420.
Report an issue: GitHub.