juicedata/juicefs · error
commit upload %s: %w
Error message
commit upload %s: %w
What it means
The final Commit call on a Storj uplink upload failed after all data was streamed successfully, so the object was never sealed and upload.Abort is invoked. Fires when the satellite or storage nodes cannot finalize the object (segment confirmation failure, network loss after upload, expired access).
Source
Thrown at pkg/object/storj.go:172
if _, err := rs.Seek(startPos, io.SeekStart); err != nil {
return err
}
return s.putOnce(ctx, key, rs)
})
}
func (s *storjClient) putOnce(ctx context.Context, key string, in io.Reader) error {
upload, err := s.project.UploadObject(ctx, s.bucket, key, nil)
if err != nil {
return fmt.Errorf("begin upload %s: %w", key, err)
}
if _, err = io.Copy(upload, in); err != nil {
_ = upload.Abort()
return fmt.Errorf("upload %s: %w", key, err)
}
if err = upload.Commit(); err != nil {
_ = upload.Abort()
return fmt.Errorf("commit upload %s: %w", key, err)
}
return nil
}
func (s *storjClient) Copy(ctx context.Context, dst, src string) error {
return storjBackoff(ctx, func() error {
_, err := s.project.CopyObject(ctx, s.bucket, src, s.bucket, dst, nil)
return err
})
}
func (s *storjClient) Delete(ctx context.Context, key string, getters ...AttrGetter) error {
return storjBackoff(ctx, func() error {
_, err := s.project.DeleteObject(ctx, s.bucket, key)
if errors.Is(err, uplink.ErrObjectNotFound) {
return nil
}
return errView on GitHub (pinned to c9a67b23e8)
Solutions
- Check network connectivity and Storj satellite status, then retry the upload from the start
- Verify the access grant has write permission and has not expired for the target bucket
- Enable uplink library logging to identify which segment or node failed during commit
- Rely on the surrounding storjBackoff wrapper in Put to retry putOnce, which restarts the full upload
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at pkg/object/storj.go:172 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06).
Data as JSON: /api/errors/ed637ae141e59f9a.
Report an issue: GitHub.