apache/flink · error · java.lang.IllegalArgumentException

Unsupported type ' ' in node

Error message

Unsupported type '{}' in node: {}

What it means

Indicates the JSON schema node at the given location declares a type keyword (e.g. 'bool', 'null', or an unrecognized value) that the converter has no mapping for in its switch. The offending type string and full node content identify exactly which schema entry is unsupported.

Solutions

  1. Address the cause reported by the error message: Unsupported type 'the reported value' in node: the reported value
  2. Verify the inputs, configuration values, and classpath/dependency setup related to this operation, then retry.

Example fix

Correct the condition described ("Unsupported type 'the reported value' in node: the reported value") and rerun the job or command.
Defensive patterns

Strategy: validation

When it happens

Trigger: Triggered at runtime when the operation fails because: Unsupported type 'the reported value' in node: the reported value.

Common situations: Commonly caused by misconfiguration, missing dependencies or files, unsupported types or operations, or invalid user input leading to: Unsupported type 'the reported value' in node: the reported value.


AI-assisted analysis of apache/flink@2f3c205e92 (2026-08-14). Data as JSON: /api/errors/2f5def95192efd77. Report an issue: GitHub.

Appendix: source

Thrown at flink-formats/flink-json/src/main/java/org/apache/flink/formats/json/JsonRowSchemaConverter.java:180

                            typeSet.add(Types.STRING);
                        }
                        break;
                    case TYPE_NUMBER:
                        typeSet.add(Types.BIG_DEC);
                        break;
                    case TYPE_INTEGER:
                        // use BigDecimal for easier interoperability
                        // without affecting the correctness of the result
                        typeSet.add(Types.BIG_DEC);
                        break;
                    case TYPE_OBJECT:
                        typeSet.add(convertObject(location, node, root));
                        break;
                    case TYPE_ARRAY:
                        typeSet.add(convertArray(location, node, root));
                        break;
                    default:
                        throw new IllegalArgumentException(
                                "Unsupported type '"
                                        + node.get(TYPE).asText()
                                        + "' in node: "
                                        + location);
                }
            }
        }
        // use TYPE of reference as fallback if present
        else {
            ref.filter(r -> r.has(TYPE))
                    .ifPresent(r -> typeSet.add(convertType(node.get(REF).asText(), r, root)));
        }

        // simple interpretation of ONE_OF for supporting "object or null"
        if (node.has(ONE_OF) && node.get(ONE_OF).isArray()) {
            final TypeInformation<?>[] types =
                    convertTypes(location + '/' + ONE_OF, node.get(ONE_OF), root);
            typeSet.addAll(Arrays.asList(types));

View on GitHub (pinned to 2f3c205e92)