go-delve/delve · info
checkpoint not found
Error message
checkpoint not found
What it means
ClearCheckpoint on the core-file process (pkg/proc/core/core.go:274) always returns errors.New("checkpoint not found") because no checkpoints can exist in a static core dump. Checkpoint returns -1/ErrContinueCore and Checkpoints returns nil for the same reason. The literal error is the only way to satisfy the interface's error contract.
Source
Thrown at pkg/proc/core/core.go:274
}
// ChangeDirection will only return an error as you cannot continue a core process.
func (p *process) ChangeDirection(proc.Direction) error { return ErrContinueCore }
// GetDirection will always return forward.
func (p *process) GetDirection() proc.Direction { return proc.Forward }
// When does not apply to core files, it is to support the Mozilla 'rr' backend.
func (p *process) When() (string, error) { return "", nil }
// Checkpoint for core files returns an error, there is no execution of a core file.
func (p *process) Checkpoint(string) (int, error) { return -1, ErrContinueCore }
// Checkpoints returns nil on core files, you cannot set checkpoints when debugging core files.
func (p *process) Checkpoints() ([]proc.Checkpoint, error) { return nil, nil }
// ClearCheckpoint clears a checkpoint, but will only return an error for core files.
func (p *process) ClearCheckpoint(int) error { return errors.New("checkpoint not found") }
func (p *process) SupportsBPF() bool {
return false
}
func (p *process) SetUProbe(fnName string, goidOffset int64, args []ebpf.UProbeArgMap) error {
panic("not implemented")
}
// StartCallInjection notifies the backend that we are about to inject a function call.
func (p *process) StartCallInjection() (func(), error) { return func() {}, nil }
func (p *process) EnableURetProbes() error {
panic("not implemented")
}
func (p *process) DisableURetProbes() error {
panic("not implemented")View on GitHub (pinned to a23773e6c3)
Solutions
- Skip checkpoint operations entirely in core-file sessions; they are unsupported by design.
- Gate checkpoint cleanup code on the backend/recorded state of the target.
- Use checkpoints only with live or recorded (rr) debug targets.
- Treat the 'checkpoint not found' response as a no-op signal in mixed-session automation.
Example fix
// before
for _, id := range ids { dbg.ClearCheckpoint(id) } // errors on cores
// after
if !isCoreDump(target) {
for _, id := range ids { dbg.ClearCheckpoint(id) }
} Defensive patterns
Strategy: validation
Validate before calling
if isCoreTarget(tg) { return nil } // nothing to clear in core sessions Type guard
func checkpointsSupported(tg *proc.TargetGroup) bool { return !isCoreTarget(tg) } Try / catch
err := dbg.ClearCheckpoint(id)
if err != nil && strings.Contains(err.Error(), "checkpoint not found") && isCoreTarget(tg) {
return nil // expected: cores have no checkpoints
} Prevention
- Only use checkpoint APIs on live or recorded (rr) targets.
- Skip checkpoint enumeration/cleanup loops for core sessions.
- Treat empty checkpoint lists in core sessions as normal, not a fault.
When it happens
Trigger: Calling ClearCheckpoint(id) — via 'checkpoint -d <id>' or rpc2 ClearCheckpoint — while debugging a core file opened with OpenCore.
Common situations: Scripts that clear all checkpoints after analysis run against both live and core sessions; users attempting checkpoint management at a 'dlv core' prompt; loop that iterates checkpoint IDs captured from a previous live session.
Related errors
- short read
- can not continue execution of core process
- can not change register values of core process
- unrecognized core format
- cannot write a breakpoint to a core file
AI-assisted analysis of go-delve/delve@a23773e6c3 (2026-08-31).
Data as JSON: /api/errors/0a71bea91ef9e108.
Report an issue: GitHub.