GoogleContainerTools/skaffold · error
computing modTimes: %w
Error message
computing modTimes: %w
What it means
After listing dependencies, CheckArtifacts times computing modification times of all dependency files via filemon.Stat. If stat'ing any dependency fails on the first pass, the error is wrapped with this message.
Source
Thrown at pkg/skaffold/diagnose/diagnose.go:94
timeSyncMap1, err := timeToConstructSyncMap(ctx, artifact, cfg)
if err != nil {
if _, isNotSupported := err.(build.ErrSyncMapNotSupported); !isNotSupported {
return fmt.Errorf("constructing inferred sync map: %w", err)
}
}
timeSyncMap2, err := timeToConstructSyncMap(ctx, artifact, cfg)
if err != nil {
if _, isNotSupported := err.(build.ErrSyncMapNotSupported); !isNotSupported {
return fmt.Errorf("constructing inferred sync map: %w", err)
}
} else {
fmt.Fprintf(out, " - Time to construct sync map: %v (2nd time: %v)\n", timeSyncMap1, timeSyncMap2)
}
}
timeMTimes1, err := timeToComputeMTimes(deps)
if err != nil {
return fmt.Errorf("computing modTimes: %w", err)
}
timeMTimes2, err := timeToComputeMTimes(deps)
if err != nil {
return fmt.Errorf("computing modTimes: %w", err)
}
fmt.Fprintf(out, " - Time to compute mTimes on dependencies: %v (2nd time: %v)\n", timeMTimes1, timeMTimes2)
}
}
return nil
}
func typeOfArtifact(a *latest.Artifact) string {
switch {
case a.DockerArtifact != nil:
return "Docker artifact"
case a.BazelArtifact != nil:
return "Bazel artifact"View on GitHub (pinned to a1189de023)
Solutions
- Inspect the wrapped error for the specific file that failed to stat
- Clean and rebuild (skaffold clean && skaffold build) to regenerate the dependency list
- Check permissions on the workspace directory for the user running skaffold
- Remove broken symlinks or regenerate missing generated files before diagnose
Example fix
// before: dependency file deleted skaffold diagnose // error: computing modTimes: stat /path/generated.go: no such file // after: regenerate it make generate && skaffold diagnose
Defensive patterns
Strategy: validation
Validate before calling
deps, err := sourceDependencies.SingleArtifactDependencies(ctx, artifact, tag)
if err != nil { return err }
for _, d := range deps {
if _, err := os.Stat(d); err != nil {
return fmt.Errorf("dependency missing before diagnose: %s", d)
}
} Try / catch
if err := CheckArtifacts(ctx, cfg, tags, out); err != nil && strings.Contains(err.Error(), "computing modTimes") {
log.Warnf("some dependency files are missing or unreadable: %v", err)
} Prevention
- Generate all generated files before running diagnose
- Clean stale caches (skaffold clean) after deleting sources
- Run skaffold as a user with read access to the workspace
When it happens
Trigger: Running `skaffold diagnose` where one or more files in the artifact's dependency list cannot be stat'ed — deleted files, broken symlinks, permission-denied paths, or dependency generators returning stale paths.
Common situations: Stale build cache referencing deleted files; dependency lists including generated files that don't exist yet; permission issues on mounted volumes or CI containers running as non-root.
Related errors
- errStr (aggregated event log file errors, e.g. "eventV2 log
- computing the size of the Docker context: %w
- getting tag for image %s
- listing artifact dependencies: %w
- constructing inferred sync map: %w
AI-assisted analysis of GoogleContainerTools/skaffold@a1189de023 (2026-09-05).
Data as JSON: /api/errors/427f880df7c99936.
Report an issue: GitHub.