mvanhorn/last30days-skill · error

engine: write %s: %w

Error message

engine: write %s: %w

What it means

Error "engine: write %s: %w" thrown in mvanhorn/last30days-skill.

Source

Thrown at mcp/internal/engine/extract.go:141

	})
}

func copyEmbeddedFile(src fs.FS, srcPath, dst string) error {
	in, err := src.Open(srcPath)
	if err != nil {
		return fmt.Errorf("engine: open %s: %w", srcPath, err)
	}
	defer func() { _ = in.Close() }()
	if err := os.MkdirAll(filepath.Dir(dst), 0o755); err != nil {
		return fmt.Errorf("engine: ensure parent of %s: %w", dst, err)
	}
	out, err := os.OpenFile(dst, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0o644)
	if err != nil {
		return fmt.Errorf("engine: create %s: %w", dst, err)
	}
	defer func() { _ = out.Close() }()
	if _, err := io.Copy(out, in); err != nil {
		return fmt.Errorf("engine: write %s: %w", dst, err)
	}
	return nil
}

// onceRegistry serializes first-call extraction per cache directory so the
// rename in ensureLocked happens exactly once across goroutines.
var (
	onceMu       sync.Mutex
	onceRegistry = map[string]*sync.Once{}
)

func getOnce(cacheDir string) *sync.Once {
	onceMu.Lock()
	defer onceMu.Unlock()
	if o, ok := onceRegistry[cacheDir]; ok {
		return o
	}
	o := &sync.Once{}

View on GitHub (pinned to c7460f6114)

Solutions

  1. Free disk space; a short write almost always means the filesystem is full.
  2. Check filesystem quotas and permissions on the cache directory, then retry.

When it happens

Trigger: Fires when the engine fails while writing payload bytes to a cache file, e.g. disk full, I/O error, or the file being removed mid-write by external cleanup.

Common situations: See trigger scenarios.


AI-assisted analysis of mvanhorn/last30days-skill@c7460f6114 (2026-08-15). Data as JSON: /api/errors/51ad21480bfbd2e5. Report an issue: GitHub.