anomalyco/sst · error

failed to create form part metadata: %w

Error message

failed to create form part metadata: %w

What it means

Wraps an error from mime/multipart.Writer.CreatePart when creating the 'metadata' form part of the Cloudflare Worker script upload. As with the content part, CreatePart only fails on a closed writer or buffer I/O error. Raised in handleUpdate during Create/Update.

Source

Thrown at pkg/server/resource/cloudflare-worker-script.go:185

		"Content-Disposition": []string{fmt.Sprintf(`form-data; name="%s"; filename="%s"`, input.Content.Hash, input.Content.Hash)},
		"Content-Type":        []string{contentType},
	})
	if err != nil {
		return fmt.Errorf("failed to create form part %s: %w", input.Content.Hash, err)
	}

	_, err = contentPart.Write([]byte(fileContent))
	if err != nil {
		return fmt.Errorf("failed to write file content for %s: %w", input.Content.Hash, err)
	}

	// Add metadata to form data
	metadataPart, err := writer.CreatePart(map[string][]string{
		"Content-Disposition": []string{`form-data; name="metadata"`},
		"Content-Type":        []string{"application/json"},
	})
	if err != nil {
		return fmt.Errorf("failed to create form part metadata: %w", err)
	}

	metadata, err := json.Marshal(buildMetadata(input))
	if err != nil {
		return fmt.Errorf("failed to marshal metadata: %w", err)
	}

	_, err = metadataPart.Write(metadata)
	if err != nil {
		return fmt.Errorf("failed to write file content for metadata: %w", err)
	}

	// Close writer
	err = writer.Close()
	if err != nil {
		return fmt.Errorf("failed to close writer: %w", err)
	}

View on GitHub (pinned to a0bd20f762)

Solutions

  1. Ensure writer.Close() happens only after all CreatePart/Write calls
  2. Inspect the wrapped error; it is deterministic, not transient
  3. Report upstream if reproducible on unmodified code

Example fix

null
Defensive patterns

Strategy: try-catch

Validate before calling

null

Try / catch

if err := handleUpdate(input); err != nil {
    if strings.Contains(err.Error(), "failed to create form part metadata") {
        return fmt.Errorf("worker upload body construction failed (report bug): %w", err)
    }
    return err
}

Prevention

When it happens

Trigger: writer.CreatePart for the 'metadata' part (Content-Type application/json) returns an error — effectively only if the writer was already closed or the bytes.Buffer write failed.

Common situations: Code reordering that closes the writer early; internal buffer failures; custom forks of the resource code.

Related errors


AI-assisted analysis of anomalyco/sst@a0bd20f762 (2026-08-30). Data as JSON: /api/errors/0a531d70b770a340. Report an issue: GitHub.