pentaho/pentaho-kettle · error · FileSystemException
WRONG_URL
WRONG_URL
Error message
WRONG_URL
What it means
RepositoryVfsProvider.findFile only accepts URIs beginning with the 'repo://' scheme; any other URI passed to this provider throws FileSystemException('WRONG_URL'). This is a defensive guard since commons-vfs should route only repo:// URIs here.
Solutions
- Use the exact scheme prefix 'repo://' followed by the repository path (e.g. repo:///home/admin/file).
- Normalize scheme case and format before resolveFile.
- Check the VFS manager's provider mapping — other schemes should not be routed to RepositoryVfsProvider.
- Log the offending URI and fix the source of the malformed URL.
Example fix
// before
FileObject fo = fsManager.resolveFile("repo:/home/admin/report.prpt"); // WRONG_URL
// after
String uri = "repo:///home/admin/report.prpt";
if (!uri.startsWith("repo://")) throw new IllegalArgumentException("must use repo:// scheme: " + uri);
FileObject fo = fsManager.resolveFile(uri); Defensive patterns
Strategy: validation
Validate before calling
if (uri == null || !uri.startsWith("repo://")) {
throw new IllegalArgumentException("Repository VFS URIs must start with 'repo://': " + uri);
} Try / catch
try {
FileObject fo = VFS.getManager().resolveFile(uri);
} catch (FileSystemException e) {
if ("WRONG_URL".equals(e.getMessage())) {
throw new IllegalArgumentException("Invalid repo:// URL: " + uri, e);
}
throw e;
} Prevention
- Always build repo URIs with the exact lowercase 'repo://' prefix plus an absolute path.
- Centralize repo URI construction in one helper to avoid scheme typos.
- Validate URIs (prefix check) before resolveFile.
When it happens
Trigger: findFile being invoked with a URI that does not start with 'repo://' — e.g. resolving 'repo:/...' (single slash, substring(7) mismatch aside, the prefix check fails), 'Repo://...' with different case, or a misrouted scheme.
Common situations: Typo in URI scheme (rep://, repos://, repo:/ with one slash), uppercase/lowercase scheme mismatch, or a custom VFS manager configuration that routes non-repo URIs to this provider.
Understand the failure class
Background: "Invalid URL" errors: why new URL(), URI.parse, and reqwest::Url reject your string — missing scheme, whitespace, and bad path format — this error's family across 39 libraries.
Related errors
- Append file in repository is not possible
- Error initialize repo:// VFS
- Invalid repository type
- No repository
- Random access to file in repository is not possible
AI-assisted analysis of pentaho/pentaho-kettle@f3058517a1 (2026-09-13).
Data as JSON: /api/errors/0547380533e6e873.
Report an issue: GitHub.
Appendix: source
Thrown at plugins/pentaho-repository-vfs/core/src/main/java/org/pentaho/repositoryvfs/vfs/RepositoryVfsProvider.java:74
throw new RuntimeException( "Error initialize repo:// VFS", ex );
}
}
}
protected Repository getRepo() {
Repository repo = repositoryInstance.getConnectedRepositoryInstance();
if ( repo == null ) {
throw new RuntimeException( "Repository not connected" );
}
return repo;
}
@Override
public FileObject findFile( FileObject baseFile, String uri, FileSystemOptions fileSystemOptions )
throws FileSystemException {
if ( !uri.startsWith( "repo://" ) ) {
throw new FileSystemException( "WRONG_URL" );
}
String path = '/' + uri.substring( 7 );
return new RepositoryVfsFileObject( this, path );
}
@Override
public FileObject createFileSystem( String scheme, FileObject file, FileSystemOptions fileSystemOptions )
throws FileSystemException {
throw new NotImplementedException();
}
@Override
public FileSystemConfigBuilder getConfigBuilder() {
throw new NotImplementedException();
}
@Override
public Collection<Capability> getCapabilities() {View on GitHub (pinned to f3058517a1)