так работают промисы в жс, если от промиса который упадёт с ошибкой создавать новые через then, то все эти промисы тоже будут падать с этой же ошибкой, а значит их придётся кэтчить отдельно
чтобы не вникать в подобные сверхтонкие нюансы работы жс достаточно заменить then на watch в корне модуля
initFx.doneData.watch(() => {
console.log('success')
})
…
React.useEffect(() => {
initFx()
}, [])
как уже упоминали выше, оригинальные промисы эффектора не приводят к uncaught в принципе