Current fields validation is based on _source, but when using synthetic source, the synthesized _source may look different to the original one, what is causing issues like this one when using TSDB.
We should improve fields validation on system tests to support cases like this one, maybe basing it on the fields API.
We have a similar issue with runtime fields, where fields are not in the source.