anomalyco/sst · error
failed to write file content for metadata: %w
Error message
failed to write file content for metadata: %w
What it means
Returned when writing the marshaled metadata JSON bytes into the 'metadata' multipart part fails. Like the content-part write, the target is an in-memory bytes.Buffer, so this indicates a buffer/write-level failure rather than a Cloudflare API problem. Raised in handleUpdate during Create/Update.
Source
Thrown at pkg/server/resource/cloudflare-worker-script.go:195
}
// 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)
}
url := fmt.Sprintf("https://api.cloudflare.com/client/v4/accounts/%s/workers/scripts/%s", input.AccountId, input.ScriptName)
req, err := http.NewRequest("PUT", url, &body)
if err != nil {
return err
}
req.Header.Set("Content-Type", "multipart/form-data; boundary="+writer.Boundary())
req.Header.Set("Authorization", "Bearer "+input.ApiToken)
client := &http.Client{Timeout: 30 * time.Second}View on GitHub (pinned to a0bd20f762)
Solutions
- Check the wrapped inner error for allocation/OOM causes
- Trim large _headers/_redirects content passed via Assets.Config
- Retry the deploy; if persistent, inspect local modifications to the resource
Example fix
null
Defensive patterns
Strategy: try-catch
Validate before calling
if len(input.Assets.Config.Headers) > 1<<20 || len(input.Assets.Config.Redirects) > 1<<20 { return errors.New("headers/redirects too large") } Try / catch
if err := handleUpdate(input); err != nil {
if strings.Contains(err.Error(), "failed to write file content for metadata") {
log.Printf("metadata write failed, check metadata size: %v", err)
}
return err
} Prevention
- Keep _headers/_redirects payloads modest in size
- Retry once; persistent failures indicate memory issues
- Don't mutate metadata between Marshal and Write
When it happens
Trigger: metadataPart.Write(metadata) returns an error or short write after successful json.Marshal of the metadata.
Common situations: Memory exhaustion on very large metadata (e.g. huge _headers/_redirects strings); internal writer state corruption.
Related errors
- failed to write encoded content for %s: %w
- failed to write file content for %s: %w
- failed to create form part metadata: %w
- failed to create form part %s: %w
- failed to close writer: %w
AI-assisted analysis of anomalyco/sst@a0bd20f762 (2026-08-30).
Data as JSON: /api/errors/731755df9de601d3.
Report an issue: GitHub.