Bootstrap check failure in 8.15.2

I am trying to upgrade an elasticsearch deployment from 8.14.1 to 8.15.2. It is not able to start up due to the following bootstrap check failure.

[ERROR][org.elasticsearch.bootstrap.Elasticsearch] [server-deployment] node validation exception
[2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch. For more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.15/bootstrap-checks.html]
bootstrap check failure [1] of [2]: max size virtual memory [-1] for user [<redacted>] is too low, increase to [unlimited]; for more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.15/max-size-virtual-memory-check.html]
bootstrap check failure [2] of [2]: max file size [-1] for user [<redacted>] is too low, increase to [unlimited]; for more information see [https://www.elastic.co/guide/en/elasticsearch/reference/8.15/_max_file_size_check.html]

From what I can gather in release docs these checks have not changed in 8.15 in particular. Is there any reason this would now start failing? I have verified that 8.14 can still start up on the base image we build on, so our OS specs have not changed.

I also noticed this and actually my bootstrap started failing in upgrading from 8.14.3 to 8.15.1

It might have something to do with Move rlimit calls into NativeAccess (#108805) · elastic/elasticsearch@bc499e7 · GitHub

Update on this - we have found that installing the libzstd library (which we did not previously have in our image) resolved the bootstrap issue.

I do not understand why this is occurring though. It looks like there were changes to how the bootstrap check is done in 8.15 as buitcj mentioned in their comment, but how is the libzstd library tied to this? Moreover, this sounds like a bug or unintended side effect which should be remediated or at the very least documented.