Calling ActivityRecording.createSession on an actual device with SPORT or SUB_SPORT that is invalid for the watch model causes an exception. While this may be by design, there is no documentation with respect to the valid selections for a specific watch model. The simulator accepts all values without throwing an exception.
For example this causes an exception on a Fenix 5 Plus:
session = ActivityRecording.createSession({ // set up recording session
:name=>"ABC", // set session name
:sport=>Activity.SPORT_MEDITATION, // set sport type
:subSport=>Activity.SUB_SPORT_BREATHING // set sub sport type
});
It would be preferable for invalid values to be coerced to SPORT_GENERIC , SUB_SPORT_GENERIC rather than throwing an exception.