prestodb/presto · error · PrestoException

INVALID_PROCEDURE_ARGUMENT

INVALID_PROCEDURE_ARGUMENT

Error message

Directory path can not be a empty string

What it means

Procedure-argument validation: the invalidate-directory-list-cache procedure was invoked with a non-empty-string check passing but an empty directory path (the Optional held ""), which names no directory.

Source

Thrown at presto-hive/src/main/java/com/facebook/presto/hive/CachingDirectoryLister.java:154

            {
                HiveFileInfo next = iterator.next();
                files.add(next);
                return next;
            }
        };
    }

    public boolean isPathCached(Path path)
    {
        ValueHolder value = Optional.ofNullable(cache.getIfPresent(path.toString())).orElse(null);
        return value != null;
    }

    public void invalidateDirectoryListCache(Optional<String> directoryPath)
    {
        if (directoryPath.isPresent()) {
            if (directoryPath.get().isEmpty()) {
                throw new PrestoException(INVALID_PROCEDURE_ARGUMENT, "Directory path can not be a empty string");
            }

            ValueHolder value = cache.getIfPresent(directoryPath.get());
            if (value == null) {
                throw new PrestoException(INVALID_PROCEDURE_ARGUMENT, "Given directory path is not cached : " + directoryPath);
            }
            cache.invalidate(directoryPath.get());
        }
        else {
            flushCache();
        }
    }

    @Managed
    public void flushCache()
    {
        cache.invalidateAll();
    }

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Pass the actual directory path to the procedure
  2. Omit the argument if the whole cache should be invalidated
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at presto-hive/src/main/java/com/facebook/presto/hive/CachingDirectoryLister.java:154 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04). Data as JSON: /api/errors/3f74edaf60f52505. Report an issue: GitHub.