{"record":{"id":"9a9c623d2600eee5","repo":"weaviate/weaviate","slug":"errexportvalidation","errorCode":"ErrExportValidation","errorMessage":"%w: export id too long: %d characters, max %d","messagePattern":"%w: export id too long: (.+?) characters, max (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"usecases/export/scheduler.go","lineNumber":922,"sourceCode":"\n// getExportMetadata retrieves export metadata from the backend\nfunc (s *Scheduler) getExportMetadata(ctx context.Context, backend modulecapabilities.BackupBackend, exportID, bucket, path string) (*ExportMetadata, error) {\n\tdata, err := backend.GetObject(ctx, exportID, exportMetadataFile, bucket, path)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get metadata: %w\", err)\n\t}\n\n\tvar meta ExportMetadata\n\tif err := json.Unmarshal(data, &meta); err != nil {\n\t\treturn nil, fmt.Errorf(\"unmarshal metadata: %w\", err)\n\t}\n\n\treturn &meta, nil\n}\n\nfunc validateExportID(id string) error {\n\tif len(id) > exportIDMaxLength {\n\t\treturn fmt.Errorf(\"%w: export id too long: %d characters, max %d\", ErrExportValidation, len(id), exportIDMaxLength)\n\t}\n\tif !regExpID.MatchString(id) {\n\t\treturn fmt.Errorf(\"%w: invalid export id: '%v' allowed characters are lowercase, 0-9, _, -\", ErrExportValidation, id)\n\t}\n\treturn nil\n}\n\n// requiresBucket returns true for backends that need an explicit bucket\n// to avoid silently falling back to the backup module's default bucket.\nfunc requiresBucket(backend string) bool {\n\tswitch backend {\n\tcase \"s3\", \"gcs\", \"azure\":\n\t\treturn true\n\tdefault:\n\t\treturn false\n\t}\n}\n","sourceCodeStart":904,"sourceCodeEnd":940,"githubUrl":"https://github.com/weaviate/weaviate/blob/75aa4b6d11f8818305aafd4440b4e32794f7ca04/usecases/export/scheduler.go#L904-L940","documentation":"Guard in validateExportID: the requested export ID exceeds the maximum allowed length (exportIDMaxLength). Long IDs can break backend key/path limits, so the request is rejected before touching storage. Wraps the ErrExportValidation sentinel.","triggerScenarios":"Thrown at usecases/export/scheduler.go:922 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Shorten the export ID or use a UUID","Enforce the ID length limit at the API client"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"75aa4b6d11f8818305aafd4440b4e32794f7ca04","analyzedAt":"2026-09-04T14:58:20.392Z","contentChangedAt":"2026-09-04T14:58:20.392Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}