apache/seatunnel · error · IllegalStateException

Missing after identity resolution.

Error message

Missing ${key} after identity resolution.

What it means

EdgeAgentIdResolver.requireProperty reads a key from the identity Properties file (e.g. output.id) after identity resolution and throws IllegalStateException if the value is missing or blank. This indicates the internal identity resolution wrote/kept an id file lacking an expected key — an invariant violation rather than user input error.

Solutions

  1. Delete the id properties file under the install root and let identity resolution regenerate it.
  2. Inspect the id file and add the missing key (e.g. output.id=<value>) if regeneration is not possible.
  3. Ensure the agent process has write permission to the install root so the file is written fully.

Example fix

// before (corrupted id file)
# empty file
// after
output.id=edge-agent-01
Defensive patterns

Strategy: try-catch

Validate before calling

Properties props = loadOrCreate(idFilePath);
if (!props.containsKey("output.id") || props.getProperty("output.id").trim().isEmpty()) {
    Files.deleteIfExists(idFilePath); // force regeneration
}

Try / catch

try {
    resolverOutput = requireProperty(properties, "output.id");
} catch (IllegalStateException e) {
    Files.deleteIfExists(idFilePath); // regenerate and retry once
    properties = loadOrCreate(idFilePath);
    resolverOutput = requireProperty(properties, "output.id");
}

Prevention

When it happens

Trigger: Calling requireProperty on a Properties object loaded from the install root id file where the requested key (e.g. output.id) is absent or whitespace-only, right after resolveAgentId ran.

Common situations: Corrupted or hand-edited id properties file under the install root; partial/failed prior write leaving an empty file; read/write permission issues causing a stale empty file to be loaded; concurrent agents racing on the same id file.

Related errors


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

Appendix: source

Thrown at seatunnel-edge-agent/seatunnel-edge-agent-starter/src/main/java/org/apache/seatunnel/edge/agent/starter/parse/EdgeAgentIdResolver.java:138

                KEY_AGENT_ID
                        + '='
                        + requireProperty(properties, KEY_AGENT_ID)
                        + '\n'
                        + KEY_INPUT_ID
                        + '='
                        + requireProperty(properties, KEY_INPUT_ID)
                        + '\n'
                        + KEY_OUTPUT_ID
                        + '='
                        + requireProperty(properties, KEY_OUTPUT_ID)
                        + '\n';
        Files.write(idFilePath, content.getBytes(StandardCharsets.UTF_8));
    }

    private static String requireProperty(Properties properties, String key) {
        String value = properties.getProperty(key);
        if (!hasText(value)) {
            throw new IllegalStateException("Missing " + key + " after identity resolution.");
        }
        return value.trim();
    }

    private static boolean hasText(String value) {
        return value != null && !value.trim().isEmpty();
    }
}

View on GitHub (pinned to cf67b549a7)