prestodb/presto · error · PrestoException

INVALID_ARGUMENTS

INVALID_ARGUMENTS

Error message

Failed to get functions from sidecar.

What it means

Wrap-around in getNativeFunctionSignatureMap: the HTTP GET to the native sidecar's function registry endpoint failed (connection error, non-OK response, or bad JSON). The sidecar worker is unreachable or misbehaving, so native UDF signatures cannot be loaded.

Source

Thrown at presto-built-in-worker-function-tools/src/main/java/com/facebook/presto/builtin/tools/NativeSidecarFunctionRegistryTool.java:108

    }

    private synchronized UdfFunctionSignatureMap getCachedSignatureMap()
    {
        if (cachedSignatureMap == null) {
            cachedSignatureMap = getNativeFunctionSignatureMap();
        }
        return cachedSignatureMap;
    }

    private UdfFunctionSignatureMap getNativeFunctionSignatureMap()
    {
        try {
            Request request = Request.Builder.prepareGet().setUri(getSidecarLocationOnStartup(nodeManager, maxRetries, retryDelayMs)).build();
            Map<String, List<JsonBasedUdfFunctionMetadata>> nativeFunctionSignatureMap = httpClient.execute(request, JsonResponseHandler.createJsonResponseHandler(nativeFunctionSignatureMapJsonCodec));
            return new UdfFunctionSignatureMap(ImmutableMap.copyOf(nativeFunctionSignatureMap));
        }
        catch (Exception e) {
            throw new PrestoException(StandardErrorCode.INVALID_ARGUMENTS, "Failed to get functions from sidecar.", e);
        }
    }

    public static URI getSidecarLocationOnStartup(NodeManager nodeManager, int maxRetries, long retryDelayMs)
    {
        Node sidecarNode = null;
        for (int attempt = 1; attempt <= maxRetries; attempt++) {
            try {
                sidecarNode = nodeManager.getSidecarNode();
                if (sidecarNode != null) {
                    break;
                }
            }
            catch (Exception e) {
                log.error("Error getting sidecar node (attempt " + attempt + "): " + e.getMessage());
                if (attempt == maxRetries) {
                    throw new RuntimeException("Failed to get sidecar node", e);
                }

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Verify the sidecar process is running and reachable from the worker
  2. Check the sidecar URI and network/DNS configuration
  3. Restart the worker to clear the null cached signature map and retry
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at presto-built-in-worker-function-tools/src/main/java/com/facebook/presto/builtin/tools/NativeSidecarFunctionRegistryTool.java:108 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/ae43cd2e369f4e33. Report an issue: GitHub.