weaviate/weaviate · error

can't pass empty node name

Error message

can't pass empty node name

What it means

Argument guard in Module.Delete: nodeName is empty while shardName is non-empty (note the message says 'node name', scoping this record). Deleting a shard's data without naming the node is ambiguous for single-node shard copies, so the call is rejected before touching object storage.

Source

Thrown at modules/offload-s3/module.go:405

}

// Delete deletes content of a shard assigned to specific node in
// cloud provider (S3, Azure Blob storage, Google cloud storage)
// Careful: if shardName and nodeName is passed empty it will delete all class frozen shards in cloud storage
// {cloud_provider}://{configured_bucket}/{className}/{shardName}/{nodeName}/{shard content}
func (m *Module) Delete(ctx context.Context, className, shardName, nodeName string) error {
	start := time.Now()

	if className == "" {
		return fmt.Errorf("can't pass empty class name")
	}

	if shardName == "" && nodeName != "" {
		return fmt.Errorf("can't pass empty shard name")
	}

	if nodeName == "" && shardName != "" {
		return fmt.Errorf("can't pass empty node name")
	}

	ctx, cancel := context.WithTimeout(ctx, m.timeout)
	defer cancel()

	cloudPath := fmt.Sprintf("s3://%s/%s/%s/%s/*", m.Bucket, strings.ToLower(className), shardName, nodeName)

	// update cloud path on deleting a class
	if shardName == "" && nodeName == "" {
		cloudPath = fmt.Sprintf("s3://%s/%s/*", m.Bucket, strings.ToLower(className))
	}

	cmd := []string{
		fmt.Sprintf("--endpoint-url=%s", m.Endpoint),
		"rm",
		cloudPath,
	}

View on GitHub (pinned to 75aa4b6d11)

Solutions

  1. Pass the node name alongside the shard name to identify which node's shard content to delete
  2. If the whole-shard/whole-class deletion is intended, adjust the other arguments accordingly per the Delete contract
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at modules/offload-s3/module.go:405 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04). Data as JSON: /api/errors/a125ed909a1837cf. Report an issue: GitHub.