{"record":{"id":"14381050edeb91ea","repo":"elastic/elasticsearch","slug":"neither-field-fieldx-nor-fieldy-exist","errorCode":null,"errorMessage":"neither field {fieldX} nor {fieldY} exist","messagePattern":"neither field (.+?) nor (.+?) exist","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/aggregations/src/main/java/org/elasticsearch/aggregations/metric/MatrixStatsResults.java","lineNumber":171,"sourceCode":"\n    /** return the correlations as a map - not public, used for getProperty() */\n    protected Map<String, HashMap<String, Double>> getCorrelations() {\n        return Collections.unmodifiableMap(correlation);\n    }\n\n    /** return the correlation coefficient between two fields */\n    public Double getCorrelation(String fieldX, String fieldY) {\n        if (fieldX.equals(fieldY)) {\n            return 1.0;\n        }\n        return getValFromUpperTriangularMatrix(correlation, fieldX, fieldY);\n    }\n\n    /** return the value for two fields in an upper triangular matrix, regardless of row col location. */\n    static <M extends Map<String, Double>> double getValFromUpperTriangularMatrix(Map<String, M> map, String fieldX, String fieldY) {\n        // for the co-value to exist, one of the two (or both) fields has to be a row key\n        if (map.containsKey(fieldX) == false && map.containsKey(fieldY) == false) {\n            throw new IllegalArgumentException(\"neither field \" + fieldX + \" nor \" + fieldY + \" exist\");\n        } else if (map.containsKey(fieldX)) {\n            // fieldX exists as a row key\n            if (map.get(fieldX).containsKey(fieldY)) {\n                // fieldY exists as a col key to fieldX\n                return map.get(fieldX).get(fieldY);\n            } else {\n                // otherwise fieldX is the col key to fieldY\n                return map.get(fieldY).get(fieldX);\n            }\n        } else if (map.containsKey(fieldY)) {\n            // fieldX did not exist as a row key, it must be a col key\n            return map.get(fieldY).get(fieldX);\n        }\n        throw new IllegalArgumentException(\"Coefficient not computed between fields: \" + fieldX + \" and \" + fieldY);\n    }\n\n    private static void checkField(String field, Map<String, ?> map) {\n        if (field == null) {","sourceCodeStart":153,"sourceCodeEnd":189,"githubUrl":"https://github.com/elastic/elasticsearch/blob/db6a809a667c081ca1dc7500389d26975573215f/modules/aggregations/src/main/java/org/elasticsearch/aggregations/metric/MatrixStatsResults.java#L153-L189","documentation":"Error \"neither field {fieldX} nor {fieldY} exist\" thrown in elastic/elasticsearch.","triggerScenarios":"Thrown at modules/aggregations/src/main/java/org/elasticsearch/aggregations/metric/MatrixStatsResults.java:171 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"db6a809a667c081ca1dc7500389d26975573215f","analyzedAt":"2026-08-12T01:39:14.192Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}