Strict confinement puts the application in a sandbox. This has the advantage that you have predictable libraries (from the sandbox) but the disadvantage that everything that the sandbox doesn’t allow requires a snap interface to operate.
Classic puts the application directly on the system. This has the advantage that the application can do anything and it can act on the real system. The disadvantage is that it must be appropriately crafted to use shared libraries from the core snap or it can result in various issues like you saw, where it works in some environment but not in another one.
If you are using classic confinement then please look at Call for testing and usage: classic-snap-analyzer