{"record":{"id":"08ddb280139bd15a","repo":"JuliusBrussee/caveman","slug":"ccr-typed-object-collision-lookup-w","errorCode":null,"errorMessage":"ccr typed object collision lookup: %w","messagePattern":"ccr typed object collision lookup: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"engine/ccr/store_sqlite.go","lineNumber":539,"sourceCode":"\t\tON CONFLICT(object_id) DO NOTHING`,\n\t\tobj.ID, obj.Type, obj.ContentHash, obj.Source, obj.CreatedAt.Format(time.RFC3339Nano),\n\t\tobj.RepositoryState, obj.SessionID, obj.TransformVersion, obj.Currentness,\n\t\tobj.Lifecycle, string(deps), obj.OriginalByteLength, obj.StoredByteLength, obj.Data,\n\t)\n\tif err != nil {\n\t\tif isFull(err) {\n\t\t\treturn \"\", fmt.Errorf(\"ccr typed object put: %w\", ErrBudgetExceeded)\n\t\t}\n\t\treturn \"\", fmt.Errorf(\"ccr typed object put: %w\", err)\n\t}\n\tinserted, err := result.RowsAffected()\n\tif err != nil {\n\t\treturn \"\", fmt.Errorf(\"ccr typed object put rows: %w\", err)\n\t}\n\tif inserted == 0 {\n\t\texisting, err := s.GetObject(obj.ID)\n\t\tif err != nil {\n\t\t\treturn \"\", fmt.Errorf(\"ccr typed object collision lookup: %w\", err)\n\t\t}\n\t\tif !sameImmutableObject(existing, obj) {\n\t\t\treturn \"\", errors.New(\"ccr: typed object id collision\")\n\t\t}\n\t}\n\treturn obj.ID, nil\n}\n\nfunc scanObject(scanner interface{ Scan(...any) error }) (Object, error) {\n\tvar obj Object\n\tvar created, deps string\n\tif err := scanner.Scan(\n\t\t&obj.ID, &obj.Type, &obj.ContentHash, &obj.Source, &created, &obj.RepositoryState,\n\t\t&obj.SessionID, &obj.TransformVersion, &obj.Currentness, &obj.Lifecycle, &deps,\n\t\t&obj.OriginalByteLength, &obj.StoredByteLength, &obj.Data,\n\t); err != nil {\n\t\treturn Object{}, err\n\t}","sourceCodeStart":521,"sourceCodeEnd":557,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/766dce6b1394ebb56a3090748d5a0240a5aefb36/engine/ccr/store_sqlite.go#L521-L557","documentation":"Wraps time.Parse(RFC3339Nano) failure on the created_at column while scanning a typed-object row in scanObject. The stored timestamp is not valid RFC3339Nano — corrupted or foreign-written row — so the object cannot be materialized.","triggerScenarios":"Thrown at engine/ccr/store_sqlite.go:539 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the row's created_at value and repair or delete the corrupt object","Ensure external writers use RFC3339Nano timestamps","Re-create the affected object via PutObject so a valid timestamp is stored"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"766dce6b1394ebb56a3090748d5a0240a5aefb36","analyzedAt":"2026-08-18T03:14:35.516Z","contentChangedAt":"2026-08-18T03:14:35.516Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}