kubernetes/kops · error

unable to determine vfs type for %q

Error message

unable to determine vfs type for %q

What it means

Terminal guard in buildVFSPath: after all conversions (S3 HTTPS, GCS HTTPS, pass-through schemes), the target still yielded no VFS path, so the file repository location cannot be interpreted as any supported storage.

Source

Thrown at pkg/assets/assetcopy/copyfile.go:215

		// equivalent gs:// vfsPath. The gs:// form itself was already passed through above.
		u, err := url.Parse(target)
		if err != nil {
			return "", fmt.Errorf("Unable to parse Google Cloud Storage URL: %q", target)
		}
		if u.Host == "storage.googleapis.com" {
			vfsPath = "gs:/" + u.Path
		}
	}

	if vfsPath == "" {
		klog.Errorf("Unable to determine VFS path from supplied URL: %s", target)
		klog.Errorf("S3, Google Cloud Storage, and File Paths are supported.")
		klog.Errorf("For S3, please make sure that the supplied file repository URL starts with s3:// or adheres to S3 naming conventions.")
		klog.Errorf("For GCS, please make sure that the supplied file repository URL starts with gs:// or https://storage.googleapis.com/")
		if err != nil { // print the S3 error for more details
			return "", fmt.Errorf("Error Details: %v", err)
		}
		return "", fmt.Errorf("unable to determine vfs type for %q", target)
	}

	return vfsPath, nil
}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Set the file repository to s3://, gs://, azureblob://, or a local path
  2. Verify S3 URL follows documented regional naming
  3. Check the printed klog hints for the exact requirement
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at pkg/assets/assetcopy/copyfile.go:215 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/ece031c443980c93. Report an issue: GitHub.