juicedata/juicefs · error

storj: open project

Error message

storj: open project: %w

What it means

Returned by newStorj when opening the Storj project with the parsed access grant fails — the grant is structurally valid but the satellite is unreachable, credentials were revoked, or the project cannot be opened.

Solutions

  1. Verify network access to the Storj satellite
  2. Confirm the access grant is still valid and not revoked
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at pkg/object/storj.go:363 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/85b098c4f8e3c4cd. Report an issue: GitHub.

Appendix: source

Thrown at pkg/object/storj.go:363

func newStorj(endpoint, accessGrant, _, _ string) (ObjectStorage, error) {
	if accessGrant == "" {
		return nil, fmt.Errorf("storj: access grant is required (pass via --access-key)")
	}
	access, err := uplink.ParseAccess(accessGrant)
	if err != nil {
		return nil, fmt.Errorf("storj: parse access grant: %w", err)
	}
	bucket := strings.Trim(strings.TrimPrefix(endpoint, "storj://"), "/")
	if bucket == "" {
		return nil, fmt.Errorf("storj: bucket name is required (set via --bucket)")
	}

	cfg := uplink.Config{UserAgent: UserAgent}

	ctx := context.Background()
	project, err := cfg.OpenProject(ctx, access)
	if err != nil {
		return nil, fmt.Errorf("storj: open project: %w", err)
	}
	return &storjClient{project: project, bucket: bucket}, nil
}

func init() {
	Register("storj", newStorj)
}

View on GitHub (pinned to c9a67b23e8)