There are several ways to track down problems such as this.
Maybe a bit of background first. The JS community is currently in a transitional phase where they are figuring out how to do interop with CommonJS and ES6 (ES Modules) properly. babel and webpack both first supported sort of a "compatibility" mode but it wasn't very clean and will be deprecated with the release of webpack5. So basically anything looking at .default looks immediately suspicious and is indeed the cause of this problem.
First we need to identify what _uncontrollable even was. You can do that by looking at the source. You can check "Pause on caught exceptions" in the Chrome devtools which will start the debugger at relevant location and source for us. You'll find
var _uncontrollable = _interopRequireDefault(require("uncontrollable"));
So it was including the uncontrollable npm package. Quickly checking the node_modules/react-bootstrap/package.json file we see that it declares "uncontrollable": "^7.0.0" as a dependency.
A quick check with npm list reveals that another dependency however still wants an older version of uncontrollable. (output trimmed for the relevant parts).
├─┬ react-bootstrap@1.0.0-beta.12
│ ├─┬ react-overlays@1.2.0
│ │ ├─┬ uncontrollable@6.2.3
│ ├─┬ uncontrollable@7.0.1
Given that it is a different major version I presume they just aren't compatible.
This might work with webpack since it will just include both versions of uncontrollable in the build. shadow-cljs however does not support nested installs since we don't want duplicate packages.