JuliusBrussee/caveman · error
objectstore: minio client: %w
Error message
objectstore: minio client: %w
What it means
Error "objectstore: minio client: %w" thrown in JuliusBrussee/caveman.
Source
Thrown at shared/platform/objectstore/objectstore.go:221
raw = "https://" + raw
}
u, err := url.Parse(raw)
if err != nil || u.Scheme != "https" || u.Hostname() == "" || u.User != nil || u.RawQuery != "" || u.Fragment != "" || (u.Path != "" && u.Path != "/") {
return errors.New("objectstore: production endpoint must be an HTTPS origin without credentials, path, query, or fragment")
}
return nil
}
// New constructs a MinIO/S3-backed Store. FromEnv adds a live production probe.
func New(cfg Config) (Store, error) {
endpoint := strings.TrimPrefix(strings.TrimPrefix(cfg.Endpoint, "https://"), "http://")
client, err := minio.New(endpoint, &minio.Options{
Creds: credentials.NewStaticV4(cfg.AccessKey, cfg.SecretKey, ""),
Secure: cfg.UseSSL,
Region: cfg.Region,
})
if err != nil {
return nil, fmt.Errorf("objectstore: minio client: %w", err)
}
return &minioStore{client: client, bucket: cfg.Bucket}, nil
}
// Probe proves the operations production retention needs instead of accepting a
// syntactically valid but unusable bucket configuration. The random probe body
// contains no tenant data and every version is removed before success returns.
func Probe(ctx context.Context, store Store) error {
if store == nil {
return errors.New("store is nil")
}
probe := make([]byte, 32)
if _, err := rand.Read(probe); err != nil {
return fmt.Errorf("generate probe: %w", err)
}
key := "_cave_health/" + base64.RawURLEncoding.EncodeToString(probe)
if err := store.Put(ctx, key, probe, "application/octet-stream"); err != nil {
return errView on GitHub (pinned to 27d5a3981a)
Solutions
- Fix the minio client configuration and retry.
When it happens
Trigger: Thrown at shared/platform/objectstore/objectstore.go:221 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/7f335e24f9e5c845.
Report an issue: GitHub.