Read this recent thread regarding upgrading Kryo in Flink: https://lists.apache.org/thread/gv49jfkhmbshxdvzzozh017ntkst3sgq
One option to consider is a Flink bridge release version that includes both Kryo v2 + v5 libraries, that supports reading saved state in either v2/v5 format, writes new state in v5 format, and allows custom serializers of both v2/v5 types. This would allow applications the ability to upgrade with minimal downtime, and migrate all persisted state to v5 format. Then, a future release can drop Kryo v2 support, and support Kryo v5 only. Applications that have been running the bridge release should have all their persisted state written in v5 format, so they can upgrade to the v5 only Flink without losing state and with minimal downtime. Here's the Kryo migration guide. Note that Kryo provides special kryo5 artifacts so that applications can use two versions of Kryo simultaneously without conflicts. https://github.com/EsotericSoftware/kryo/wiki/Migration-to-v5