apache/seatunnel · error · HugeGraphConnectorException

OPERATION_RETRY_INTERRUPTED

OPERATION_RETRY_INTERRUPTED

Error message

Graph operation retry was interrupted

What it means

Thrown by HugeGraphClient.sleepBeforeRetry when the retry backoff sleep between graph operation attempts is interrupted (InterruptedException), aborting the retry loop for a HugeGraph REST/graph operation.

Solutions

  1. Check whether the job/task was intentionally cancelled; if so, treat interruption as shutdown
  2. Avoid saturating HugeGraph so operations succeed on the first attempt and no backoff sleep occurs
  3. Restore the interrupt status in a catch block and propagate a clean shutdown
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at seatunnel-connectors-v2/connector-hugegraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/hugegraph/client/HugeGraphClient.java:390 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/bb308a11917a41f6. Report an issue: GitHub.

Appendix: source

Thrown at seatunnel-connectors-v2/connector-hugegraph/src/main/java/org/apache/seatunnel/connectors/seatunnel/hugegraph/client/HugeGraphClient.java:390

                throw new HugeGraphConnectorException(
                        HugeGraphConnectorErrorCode.GRAPH_OPERATION_FAILED,
                        "Non-retryable error executing graph read operation",
                        e);
            }
        }
        throw new HugeGraphConnectorException(
                HugeGraphConnectorErrorCode.GRAPH_OPERATION_FAILED,
                "Failed to execute graph read operation");
    }

    private void sleepBeforeRetry(int attempt) {
        long delay = computeBackoffMs(retryBackoffMs, retryBackoffMaxMs, attempt);
        try {
            LOG.info("Will retry in {} ms (attempt {})...", delay, attempt);
            Thread.sleep(delay);
        } catch (InterruptedException ie) {
            Thread.currentThread().interrupt();
            throw new HugeGraphConnectorException(
                    HugeGraphConnectorErrorCode.OPERATION_RETRY_INTERRUPTED,
                    "Graph operation retry was interrupted",
                    ie);
        }
    }

    /**
     * Exponential backoff: {@code baseMs * 2^(attempt-1)}, capped at {@code maxMs} (a non-positive
     * {@code maxMs} means no cap). The shift is bounded so a large {@code maxRetries} cannot
     * overflow. {@code attempt} is 1-based (the first retry uses the base delay).
     */
    static long computeBackoffMs(long baseMs, long maxMs, int attempt) {
        if (baseMs <= 0) {
            return 0;
        }
        int shift = Math.min(Math.max(attempt - 1, 0), 30);
        long scaled = baseMs << shift;
        if (scaled < 0) {

View on GitHub (pinned to cf67b549a7)