{"record":{"id":"ebdd2bd68603fae6","repo":"JuliusBrussee/caveman","slug":"objectstore-object-exceeds-read-limit","errorCode":null,"errorMessage":"objectstore: object exceeds read limit","messagePattern":"objectstore: object exceeds read limit","errorType":"error_code","errorClass":"ErrTooLarge","httpStatus":null,"severity":"error","filePath":"shared/platform/objectstore/objectstore.go","lineNumber":35,"sourceCode":"\t\"fmt\"\n\t\"io\"\n\t\"net/url\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/JuliusBrussee/caveman/shared/platform/env\"\n\t\"github.com/minio/minio-go/v7\"\n\t\"github.com/minio/minio-go/v7/pkg/credentials\"\n)\n\n// ErrNotFound is returned by Get/Delete when the key does not exist.\nvar ErrNotFound = errors.New(\"objectstore: object not found\")\n\n// ErrTooLarge is returned when a remote object exceeds the configured in-memory\n// read ceiling. Artifact/capture payloads are bounded on write; enforcing a\n// read ceiling too prevents a corrupted or attacker-written bucket object from\n// exhausting a service process.\nvar ErrTooLarge = errors.New(\"objectstore: object exceeds read limit\")\n\n// ErrPagingUnsupported is returned when a caller that must bound listing\n// memory is given a backend without a cursor-capable implementation.\nvar ErrPagingUnsupported = errors.New(\"objectstore: paged listing unsupported\")\n\n// Store is the blob backend contract.\ntype Store interface {\n\t// Put writes body at key, overwriting any existing object.\n\tPut(ctx context.Context, key string, body []byte, contentType string) error\n\t// Get returns the bytes at key, or ErrNotFound.\n\tGet(ctx context.Context, key string) ([]byte, error)\n\t// Delete removes key (no error if already absent).\n\tDelete(ctx context.Context, key string) error\n\t// Exists reports whether key is present.\n\tExists(ctx context.Context, key string) (bool, error)\n\t// List returns all keys under prefix (used by retention + ZDR assertions).\n\tList(ctx context.Context, prefix string) ([]string, error)\n}","sourceCodeStart":17,"sourceCodeEnd":53,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/27d5a3981a347890211bb1bf2439e5c821a63bc9/shared/platform/objectstore/objectstore.go#L17-L53","documentation":"Error \"objectstore: object exceeds read limit\" thrown in JuliusBrussee/caveman.","triggerScenarios":"Thrown at shared/platform/objectstore/objectstore.go:35 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["The object exceeds the read limit; raise the limit or read a smaller object."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"27d5a3981a347890211bb1bf2439e5c821a63bc9","analyzedAt":"2026-08-15T09:26:11.751Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}