As someone who doesn't really use ob-shell, I've made too much noise in this thread, and am intending this to be my last comment here...
I think it's a bad idea that ":results value", and not specifying ":results", give different behavior. In my own Org-babel files, I usually have a header line like follows: #+PROPERTY: header-args :results output Which sets the default return value to ":results output". Then, I manually specify ":results value" when I need that instead. But if explicitly writing ":results value" is different than the default, then it would no longer be possible to use this pattern anymore. I think it would be prudent to revert the change to ":results value" before the release of 9.4. I think Tom makes a convincing case that returning the exit code is not only wrong, but also disruptive to existing users of ob-shell.