Clickhouse version 21.10.6.2,21.10.5.3 and lower:
```
CREATE TABLE repro (
`id` UInt64,
`version` UInt16,
`conversations.id` Array(UInt64),
`conversations.routings.id` Array(Array(UInt64))
)
ENGINE = ReplacingMergeTree(version)
ORDER BY (id)
SETTINGS min_bytes_for_wide_part = 0, min_rows_for_wide_part = 0;

INSERT INTO repro (`id`, `version`, `conversations.id`, `conversations.routings.id`)
VALUES (1, 1, [1], [[1]]);

select * from repro;

┌─id─┬─version─┬─conversations.id─┬─conversations.routings.id─┐
│  1 │       1 │ [1]              │ [[1]]                     │
└────┴─────────┴──────────────────┴───────────────────────────┘

```
CH version: 21.11.2.2 and upper:

```
CREATE TABLE repro (
`id` UInt64,
`version` UInt16,
`conversations.id` Array(UInt64),
`conversations.routings.id` Array(Array(UInt64))
)
ENGINE = ReplacingMergeTree(version)
ORDER BY (id)
SETTINGS min_bytes_for_wide_part = 0, min_rows_for_wide_part = 0;

INSERT INTO repro (`id`, `version`, `conversations.id`, `conversations.routings.id`)
VALUES (1, 1, [1], [[1]]);

select * from repro;

Received exception from server (version 21.11.2):                        <------------- unexpected, it should have results.
Code: 44. DB::Exception: Received from localhost:9000. DB::Exception: There is no subcolumn routings.id in type Nested(id UInt64, `routings.id` Array(UInt64)): While executing MergeTreeInOrder. (ILLEGAL_COLUMN)

```

**Unexpected Behaviour:**
It should not have an exception in the select query.



{
    assert(prefix_len < path.size());
    SubstreamData res = path[prefix_len].data;
    for (ssize_t i = static_cast<ssize_t>(prefix_len) - 1; i >= 0; --i)
    {
        const auto & creator = path[i].creator;
        if (creator)
        {
            res.type = res.type ? creator->create(res.type) : res.type;
            res.serialization = res.serialization ? creator->create(res.serialization) : res.serialization;
            res.column = res.column ? creator->create(res.column) : res.column;
        }
    }
    return res;
}
void ISerialization::throwUnexpectedDataAfterParsedValue(IColumn & column, ReadBuffer & istr, const FormatSettings & settings, const String & type_name) const
{
    WriteBufferFromOwnString ostr;
    serializeText(column, column.size() - 1, ostr, settings);
    throw Exception(
        ErrorCodes::UNEXPECTED_DATA_AFTER_PARSED_VALUE,
        "Unexpected data '{}' after parsed {} value '{}'",
        std::string(istr.position(), std::min(size_t(10), istr.available())),
        type_name,
        ostr.str());
}
}