SDK 3.2.x builds for venu2/venu2s "successfully", but app crashes at runtime (expected build to fail)

Since the bug reports forum isn't sorted by date (so it's not easy to see recent posts other than the most recent one), I'm reposting this here for others to see.

TL;DR I think if you try to build an app for venu2/venu2s with SDK 3.2.x, the build should fail, but instead the build "succeeds" and the app crashes at runtime.

forums.garmin.com/.../sdk-3-2-x-builds-for-venu2-venu2s-successfully-but-app-crashes-at-runtime-expected-build-to-fail

Description of Problem

The venu2/venu2s devices apparently require Connect IQ SDK 4.x.x, which is understandable, since they're new with Connect IQ 4.x.x.

However, if I create a data field app with venu2/venu2s support and build with Connect IQ 3.2.x, the build completes without error, but the app simply crashes at runtime.

I expected the app to fail to build. Even more disturbingly, "Export Project" works without error (I have no idea what would happen if I submitted this app to the store -- hopefully the app would fail automated review)

Seems like compiler.json for each device should specify a *minimum* SDK version. This was obviously not a problem in the past when each SDK distribution included its own list of supported devices, but it seems like it will be a problem going forward every time a new set of devices is released that is incompatible with older SDKs which nonetheless use the "Device Library" (i.e. CIQ 3.2.x and higher)

  • Why is

    "The VenuRegistered 2/2s is our first Connect IQ product using API level 4.0.0 and requires the Connect IQ 4.0.0 SDK."

    so hard to understand?  It's documented.

    Why is it so hard for you to understand that I know that Venu 2/2S requires CIQ 4.0.0 SDK, but I would still like the build to fail if someone tries to build for Venu 2/2S in an older SDK? And that I don't think venu2/venu2s should be available under "Edit Products" if I am currently using SDK 3.2?

    Just because something is documented doesn't mean that it also can't be enforced by the CIQ SDK/plugin/extension.

    Preventing the user from making mistakes is part of a robust and friendly user experience. In my opinion.

  • How is it going right now? FlowState