JuliusBrussee/caveman · error
ccr: unknown object type %q
Error message
ccr: unknown object type %q
What it means
Error "ccr: unknown object type %q" thrown in JuliusBrussee/caveman.
Source
Thrown at engine/ccr/store.go:103
Currentness Currentness `json:"currentness"`
Lifecycle Lifecycle `json:"lifecycle"`
Dependencies []string `json:"dependencies"`
OriginalByteLength int `json:"original_byte_length"`
StoredByteLength int `json:"stored_byte_length"`
Data []byte `json:"data"`
}
var objectTypes = map[ObjectType]struct{}{
ObjectFileObservation: {}, ObjectSearchResult: {}, ObjectCommandResult: {},
ObjectTestResult: {}, ObjectBuildResult: {}, ObjectDiffSnapshot: {},
ObjectTaskContract: {}, ObjectTaskDecision: {}, ObjectExecutionState: {},
ObjectDocumentationExcerpt: {}, ObjectBrowserSnapshot: {},
ObjectRepositoryMap: {}, ObjectEvidenceBundle: {},
}
func prepareObject(obj Object) (Object, error) {
if _, ok := objectTypes[obj.Type]; !ok {
return Object{}, fmt.Errorf("ccr: unknown object type %q", obj.Type)
}
if strings.TrimSpace(obj.SessionID) == "" {
return Object{}, errors.New("ccr: typed object session_id is required")
}
if obj.Currentness == "" {
obj.Currentness = Current
}
if obj.Currentness != Current && obj.Currentness != Stale && obj.Currentness != Archived {
return Object{}, fmt.Errorf("ccr: unknown currentness %q", obj.Currentness)
}
if obj.Lifecycle == "" {
obj.Lifecycle = Hot
}
if obj.Lifecycle != Hot && obj.Lifecycle != Warm && obj.Lifecycle != Cold && obj.Lifecycle != LifecycleArchived {
return Object{}, fmt.Errorf("ccr: unknown lifecycle %q", obj.Lifecycle)
}
if obj.CreatedAt.IsZero() {
obj.CreatedAt = time.Now().UTC()View on GitHub (pinned to 27d5a3981a)
Solutions
- Use a known ccr object type.
When it happens
Trigger: Thrown at engine/ccr/store.go:103 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15).
Data as JSON: /api/errors/3f4309e043c910b9.
Report an issue: GitHub.