bcicen/ctop · warning
action not implemented
Error message
action not implemented
What it means
ActionNotImplErr is a sentinel error exported by the manager package indicating that a lifecycle action (Start/Stop/Remove/Pause/Unpause/Restart) is not implemented by the Manager implementation. The Mock manager returns it for every action, and real implementations return it for unsupported operations on the current platform.
Source
Thrown at connector/manager/main.go:5
package manager
import "errors"
var ActionNotImplErr = errors.New("action not implemented")
type Manager interface {
Start() error
Stop() error
Remove() error
Pause() error
Unpause() error
Restart() error
Exec(cmd []string) error
}
View on GitHub (pinned to 59f00dd6aa)
Solutions
- Configure a real manager implementation instead of the Mock driver
- Check platform/backend support for the specific action before calling it
- Handle the sentinel with errors.Is(err, manager.ActionNotImplErr) and skip or degrade gracefully
Example fix
// before
mgr, _ := manager.ByName("mock")
mgr.Start() // action not implemented
// after
mgr, _ := manager.ByName("docker")
if err := mgr.Start(); errors.Is(err, manager.ActionNotImplErr) { /* unsupported: handle */ } Defensive patterns
Strategy: type-guard
Validate before calling
if _, ok := mgr.(*manager.Mock); ok { // skip actions or use a real manager } Type guard
func implemented(m manager.Manager) bool { _, ok := m.(interface{ Start() error }); return !errors.Is(m.Start(), manager.ActionNotImplErr) } Try / catch
if err := mgr.Start(); err != nil {
if errors.Is(err, manager.ActionNotImplErr) { /* degrade/skip */ }
} Prevention
- Don't wire the Mock manager in production config
- Feature-check actions per backend before calling
- Use errors.Is against the exported sentinel
When it happens
Trigger: Calling any Manager lifecycle method on a Mock instance, or on a backend (e.g. a platform-specific manager) that does not implement that particular action.
Common situations: Using the Mock driver in tests or by misconfiguration; calling Pause/Unpause on managers/backends that only support start/stop; switching connector backends via config to one with partial support.
AI-assisted analysis of bcicen/ctop@59f00dd6aa (2026-09-02).
Data as JSON: /api/errors/d8327aaa5b64f110.
Report an issue: GitHub.