Forced update 39~41?

documentation is in public repo you can access older versions any time

what’s the problem with putting a greater compatibility of SDK’s in the APP?

keeping multiple versions of the same library in one app is very complicated and costly to maintain, and if there are architectural changes introduced sometimes we need to make changes to all supported sdk to keep it working.

1 YEAR is too little for an in-house app to be deprecated and need to be completely refactored

why would you need to completely refactor? Migrating from sdk to sdk is relatively easy, I recommend doing it regularly not just once a year. Even in case of significant architectural changes from user perspective it’s usually just replacing one package with another. There are sometimes not trivial breaking changes, but in most cases it’s required to e.g. support new android/ios version or some new policy in store.

I don’t recommend that, but if you want to stay on one SDK with eas it will be possible to just build custom dev client and use it instead of expo go, (SDK 39 was before EAS build existed, so you still need to update this time).