chenhg5/cc-connect · error
resolve timer reply target: %w
Error message
resolve timer reply target: %w
What it means
Wraps a failure from ResolveCronReplyTarget when a platform implementing CronReplyTargetResolver fails to resolve the reply target for a timer job. Returned only when the error is not ErrNotSupported; ErrNotSupported is silently tolerated and defaults are used.
Source
Thrown at core/engine.go:1720
}
if targetPlatform == nil {
return fmt.Errorf("platform %q not found for session %q", platformName, sessionKey)
}
rc, ok := targetPlatform.(ReplyContextReconstructor)
if !ok {
return fmt.Errorf("platform %q does not support proactive messaging (timer)", platformName)
}
runSessionKey := sessionKey
var replyCtx any
var err error
if !job.Mute {
if resolver, ok := targetPlatform.(CronReplyTargetResolver); ok {
resolvedSessionKey, resolvedReplyCtx, err := resolver.ResolveCronReplyTarget(sessionKey, timerRunTitle(job))
if err != nil {
if !errors.Is(err, ErrNotSupported) {
return fmt.Errorf("resolve timer reply target: %w", err)
}
} else {
if resolvedSessionKey != "" {
runSessionKey = resolvedSessionKey
}
if resolvedReplyCtx != nil {
replyCtx = resolvedReplyCtx
}
}
}
}
if replyCtx == nil {
replyCtx, err = rc.ReconstructReplyCtx(runSessionKey)
if err != nil {
return fmt.Errorf("reconstruct reply context: %w", err)
}
}
View on GitHub (pinned to 4000b2338a)
Solutions
- Inspect the wrapped cause (%w) for the underlying platform API error
- Verify platform credentials/tokens are valid
- Retry the timer job; if transient, the next run may succeed
- Return ErrNotSupported from the resolver if resolution is intentionally unavailable, so the engine uses defaults
Example fix
// before
return nil, nil, fmt.Errorf("chat gone")
// after
return nil, nil, core.ErrNotSupported // fall back to default session key/ctx Defensive patterns
Strategy: try-catch
Try / catch
if err := runTimerJob(job); err != nil { if errors.Is(err, platformAPIErr) { retryLater(job) } } Prevention
- Return core.ErrNotSupported for unsupported resolutions so the engine degrades gracefully
- Validate platform credentials before scheduling timers
- Log the wrapped cause (%w chain) for diagnosis
When it happens
Trigger: Platform's ResolveCronReplyTarget returns a non-ErrNotSupported error while preparing a timer run (e.g. API call to resolve chat fails).
Common situations: Platform API outage or expired credentials when resolving the target chat; platform adapter bug in target resolution logic.
Related errors
- platform %q does not support proactive messaging (timer)
- listen for Agy permission hooks: %w
- generate permission bridge token: %w
- resolve home directory for Agy permission bridge: %w
- create Agy permission overlay: %w
AI-assisted analysis of chenhg5/cc-connect@4000b2338a (2026-09-06).
Data as JSON: /api/errors/59f1ee07e7c27b9b.
Report an issue: GitHub.